Windows XP에서 Linux 명령`hostname --fqdn`에 해당합니까?


33

Windows XP 상자의 정규화 된 도메인 이름을 찾는 방법이 있습니까?

Windows에 익숙하지 않기 때문에 내가 찾고 hostname --fqdn있는 것을 Linux에서 사용할 수 있는 명령과 동일하다고 설명합니다 .

답변:


18

시스템 속성 ( "컴퓨터 이름"탭)에서 찾을 수 있습니다.

명령 줄 IPCONFIG /ALL을 사용하여 "호스트 이름"및 "주 DNS 접미사"필드를 실행 하고 살펴볼 수 있습니다.


두 가지 방법으로 결과가 다릅니다. ipconfig는 내가 기대했던 것을 제공하지만 '컴퓨터 이름'탭에서 도메인이 다릅니다. 도메인 접미사가 아닌 작업 그룹 이름처럼 보입니다. 이것들이 어떻게 든 동등한 Windows 전용입니까?
Grundlefleck

"컴퓨터 이름"탭에서 "전체 컴퓨터 이름"값을 확인해야합니다. "도메인"값은 컴퓨터가 속한 Windows 도메인 (또는 작업 그룹)입니다.
Massimo

아 맞다. 호스트 이름 만 표시하기 때문에이 시스템의 설치에 문제가있을 수 있습니다 (마지막 끝에 점이 있음). 아마도 예상대로 질문을 보여줬다면 질문하지 않았을 것입니다 : -D. +1
Grundlefleck

"변경"을 클릭 한 다음 "추가"를 클릭 해 보셨습니까?
Massimo

1
일부 시스템은 현지화되어 있으므로 경우에 따라 nr을 기준으로 적절한 라인을 찾는 것이 더 나을 수 있습니다 (5 행).
RnR

28

hostnameWindows 에는 명령에 대한 이러한 옵션이 없습니다 . 그러나 이것은 트릭을 수행해야합니다.

echo %COMPUTERNAME%.%USERDNSDOMAIN%

: 또는 당신은 (Windows에서 grep을 수 find /I "string"에서 호스트 - 및 도메인의 경우) set또는 systeminfo또는 ipconfig -all이름과 다른 곳에서 함께 접착제.

편집 : 고정 오타. 감사합니다 Benoit

업데이트 : 변수 %USERDNSDOMAIN%는 도메인에 로그온했을 때만 사용할 수 있습니다 ... DHCP 서버에서 얻은 DNS 접미사는 환경 변수에 포함되지 않습니다 (내가 알 수있는 한).


1
두 번째 변수는 "% USERDNSDOMAIN %"입니다.
Benoit

% USERDNSDOMAIN %은 (는)이 시스템에서 변수가 아닌 것으로 보입니다. 하지 않는 한 내가 뭔가 잘못하고 있어요 : H :.. \> 에코 % COMPUTERNAME % % USERDNSDOMAIN % [correctname]는 % USERDNSDOMAIN %
Grundlefleck

Ach, 코멘트에 끔찍한 붙여 넣기를 잊어 버렸습니다.
Grundlefleck

2
WMIC 를 사용 하여 도메인 이름을 검색 할 수 있습니다 .wmic computersystem get domain
Noam Manos


1

vbscript :

' Print FQDN in lower case letters
' Volker Fröhlich (2011)

option explicit
dim Message
dim output
dim WshShell, objEnv
dim mydomain

' Read value from registry
function readFromRegistry (strRegistryKey, strDefault )
    Dim WSHShell, value

    On Error Resume Next
    Set WSHShell = CreateObject("WScript.Shell")
    value = WSHShell.RegRead( strRegistryKey )

    if err.number <> 0 then
        readFromRegistry= strDefault
    else
        readFromRegistry=value
    end if

    set WSHShell = nothing
end function

mydomain = readfromRegistry("HKLM\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Domain", "asdf")

' Get the WshShell object
Set WshShell = CreateObject("WScript.Shell")

' Get collection by using the Environment property
Set objEnv = WshShell.Environment("Process")

if (mydomain="") then
Message = LCase(objEnv("COMPUTERNAME"))
else
Message = LCase(objEnv("COMPUTERNAME")) & "." & mydomain
end if

' Write to stdout
set output = wscript.stdout
output.writeline Message

스크립트 위에 호출 할 DOS 배치 파일 :

for /f %%a in ('cscript //nologo yourscriptname.vbs') do set FQDN=%%a
echo %FQDN%
pause

1

명령 프롬프트에서 다음을 시도하십시오.

FOR /F "tokens=2" %i in ('systeminfo ^| find /i "Domain"') do echo %computername%.%i

배치 파일 에서 이것을 사용 %하는 %i경우 double을 사용해야 합니다. 예 :%%i

사용자와 컴퓨터가 다른 도메인에있는 %USERDNSDOMAIN%경우 컴퓨터에 적용 할 때 정확하지 않을 수 있습니다. 하나의 도메인 만 있고 하위 도메인이없는 경우 원하는 경우 위의 다른 솔루션을 사용할 수 있습니다.


1

이것은 또한 작동하며 systeminfo의 지연이 없습니다.

/ f "tokens = 2 delims = :"% i in ( 'ipconfig / all ^ | findstr Search') SET domain = % i & SET newdomain = % domain : = % & echo % COMPUTERNAME %. % newdomain %


1
네 개의 선행 공백을 사용하여 답을 '코드'로 형식화하십시오. 유비쿼터스 '도움말'링크는 실제로 도움이됩니다.
Xalorous


0

이에 대한 CMD 스크립트는 다음과 같습니다.

@ECHO OFF

FOR /f "tokens=2,* delims= " %%a in ('IPCONFIG ^/ALL ^| FINDSTR "Primary Dns"') do set tempsuffix=%%b
FOR /f "tokens=1,2 delims=:" %%a in ('echo %tempsuffix%') do set dnssuffix=%%b
SET FQDN=%COMPUTERNAME%.%DNSSUFFIX:~1%

ECHO Server FQDN: %FQDN%

0

다른 버전 :

echo.
echo Getting FQDN...
FOR /F "tokens=1-2" %%A in ('ping -a localhost -n 1') do (
    echo %%A | find /i "Pinging" >nul
    IF NOT ERRORLEVEL 1 SET "FQDN=%%B"
)
echo %FQDN%
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.