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.
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.
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).
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
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.
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.