Existe-t-il un moyen de trouver le nom de domaine complet d'une boîte Windows XP?
Ne connaissant pas Windows, je décrirais ce que je recherche comme l'équivalent de la commande hostname --fqdn
disponible sous Linux.
Existe-t-il un moyen de trouver le nom de domaine complet d'une boîte Windows XP?
Ne connaissant pas Windows, je décrirais ce que je recherche comme l'équivalent de la commande hostname --fqdn
disponible sous Linux.
Réponses:
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 de l'hôte" et "Suffixe DNS principal".
Il n'y a pas une telle option pour la hostname
commande dans Windows. Cependant, cela devrait faire l'affaire:
echo %COMPUTERNAME%.%USERDNSDOMAIN%
Ou vous pouvez grep (sous Windows find /I "string"
:) pour Host- et Domain from set
ou systeminfo
or ou ipconfig -all
nommez-le et collez-le ensemble ailleurs.
Edit: correction d'une faute de frappe. Merci Benoit
Mise à jour:
la variable %USERDNSDOMAIN%
n'est disponible que si vous êtes connecté à un domaine ... Le suffixe DNS que vous obtenez d'un serveur DHCP n'est pas placé dans une variable d'environnement (pour autant que je sache).
wmic computersystem get domain
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
DOSSIER DE LOT DOS À APPELER AU-DESSUS DU SCRIPT:
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
pensez à utiliser le double %
pour %i
si vous utilisez cela dans un fichier batch. par exemple%%i
Une des raisons pour lesquelles vous voudrez peut-être procéder de cette façon est la suivante: si vos utilisateurs et vos ordinateurs appartiennent à des domaines différents, le résultat %USERDNSDOMAIN%
sera incorrect lorsqu'ils sont appliqués à votre ordinateur. Si vous avez seulement un domaine et pas de domaines enfants, vous pouvez utiliser les autres solutions ci-dessus si vous le souhaitez.
Cela fonctionnera aussi et n’a pas le délai de systeminfo:
for / f "tokens = 2 delims =:"% i in ('ipconfig / all ^ | findstr Search') do le domaine SET =% i & SET newdomain =% domaine: =% & echo% COMPUTERNAME%.% newdomain%
Voici un script CMD pour cela:
@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%