Equivalente ao comando do Linux 'hostname --fqdn' no Windows XP?

29

Existe uma maneira de encontrar o nome de domínio totalmente qualificado de uma caixa do Windows XP?

Não sendo familiarizado com o Windows, eu descreveria o que estou procurando como o equivalente do comando hostname --fqdn disponível no Linux.

    
por Grundlefleck 12.10.2009 / 14:46

9 respostas

17

Você pode encontrá-lo nas propriedades do sistema (guia "Nome do computador").

Com a linha de comando, você pode executar IPCONFIG /ALL e dar uma olhada nos campos "Nome do host" e "Sufixo DNS primário".

    
por 12.10.2009 / 14:56
25

Não há essa opção para o comando hostname no Windows. No entanto, isso deve fazer o truque:

echo %COMPUTERNAME%.%USERDNSDOMAIN%

Ou você pode grep (no Windows: find /I "string" ) para Host e Domínio do set ou systeminfo ou ipconfig -all name e colá-lo em outro lugar.

Editar: erro de digitação fixo. Obrigado Benoit

Atualização: A variável %USERDNSDOMAIN% só está disponível quando conectado a um domínio ... O sufixo DNS obtido de um servidor DHCP não é colocado em uma variável de ambiente (tanto quanto eu poderia descobrir).

    
por 12.10.2009 / 15:23
8

O comando é:

ping -a localhost
    
por 26.08.2015 / 00:33
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

ARQUIVO DO LOTE DOS DOS PARA CHAMAR ACIMA DO SCRIPT:

for /f %%a in ('cscript //nologo yourscriptname.vbs') do set FQDN=%%a
echo %FQDN%
pause
    
por 19.02.2014 / 13:46
1

Tente isso no prompt de comando:

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

lembre-se de usar double % para %i se estiver usando isso em um arquivo batch. por exemplo. %%i

Um motivo pelo qual você pode querer fazer desta forma é: se seus usuários e computadores estiverem em domínios diferentes, o %USERDNSDOMAIN% não estará correto quando aplicado ao seu computador. Se você tiver apenas um domínio e nenhum domínio filho, poderá usar as outras soluções acima, se desejar.

    
por 24.06.2015 / 15:16
1

Isso também funcionará e não terá o atraso de systeminfo:

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

    
por 22.04.2017 / 17:29
0

Se você precisar portar scripts shell Unix para Windows ou apenas trabalhar na CLI, dê uma olhada em GNUwin32 . Ele fornece as ferramentas comuns, como corte, grep, etc para o Windows.

    
por 13.10.2009 / 18:37
0

Aqui está um script CMD para isso:

@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%
    
por 17.01.2018 / 11:29
0

Outra versão:

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%
    
por 13.02.2018 / 16:59