40 votes

Équivalent de la commande Linux `hostname --fqdn` sous Windows XP?

Y a-t-il un moyen de trouver le nom de domaine entièrement qualifié d'une machine Windows XP?

Étant peu familier avec Windows, je décrirais ce que je recherche comme l'équivalent de la commande hostname --fqdn disponible sous Linux.

33voto

liangzan Points 1733

Il n'y a pas d'option semblable à la commande hostname dans Windows. Cependant, ceci devrait faire l'affaire :

echo %COMPUTERNAME%.%USERDNSDOMAIN%

Ou vous pouvez utiliser grep (sous Windows : find /I "string") pour chercher l'hôte et le domaine à partir de set ou systeminfo ou ipconfig -all et les assembler ailleurs.

Édition : correction de la coquille. Merci Benoit

Mise à jour : La variable %USERDNSDOMAIN% est uniquement disponible lorsque vous êtes connecté à un domaine... Le suffixe DNS obtenu à partir d'un serveur DHCP n'est pas placé dans une variable d'environnement (du moins d'après mes recherches).

22voto

Massimo Points 67633

Vous pouvez le trouver dans les propriétés du système (onglet "Nom de l'ordinateur").

Avec la ligne de commande, vous pouvez exécuter IPCONFIG /ALL et consulter les champs "Nom d'hôte" et "Suffixe DNS principal".

14voto

Bozojoe Points 567

La commande est :

ping -a localhost

1voto

user209990 Points 11

Vbscript :

' Imprimer FQDN en minuscules
' Volker Fröhlich (2011)

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

' Lire la valeur du registre
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")

' Obtenir l'objet WshShell
Set WshShell = CreateObject("WScript.Shell")

' Obtenir la collection en utilisant la propriété Environment
Set objEnv = WshShell.Environment("Process")

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

' Écrire à stdout
set output = wscript.stdout
output.writeline Message

FICHIER DE PROCESSUS DE DOS POUR APPELER LE SCRIPT CI-DESSUS :

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

1voto

Simon Points 1

Essayez ceci à partir de l'invite de commande :

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

n'oubliez pas d'utiliser deux % pour %i si vous utilisez ceci dans un fichier de commandes. par exemple %%i

Une raison pour laquelle vous pourriez vouloir le faire de cette manière est : si vos utilisateurs et ordinateurs sont dans des domaines différents, le %USERDNSDOMAIN% ne sera pas correct lorsqu'il sera appliqué à votre ordinateur. Si vous n'avez qu'un seul domaine et pas de sous-domaines, vous pouvez alors utiliser les autres solutions ci-dessus si vous le souhaitez.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X