Existe-t-il un moyen de trouver le nom de domaine complet d'une boîte 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.
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 consultez les champs "Nom d'hôte" et "Suffixe DNS principal".
Il n'y a pas une telle option pour la commande hostname
dans Windows. Cependant, cela devrait faire l'affaire:
echo %COMPUTERNAME%.%USERDNSDOMAIN%
Ou vous pouvez grep (sous Windows: find /I "string"
) pour l'hôte et le domaine à partir de set
ou systeminfo
ou ipconfig -all
nommez-le et collez-le ailleurs.
Edit: correction de faute de frappe. Merci Benoit
pdate: La variable %USERDNSDOMAIN%
n'est disponible que lorsque 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).
La commande est:
ping -a localhost
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 le double %
pour %i
si vous l'utilisez dans un fichier batch. par exemple. %%i
Une raison pour laquelle vous voudrez peut-être procéder de cette façon est: si vos utilisateurs et ordinateurs se trouvent 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 aucun domaine enfant, vous pouvez utiliser les autres solutions ci-dessus si vous le souhaitez.
Cela fonctionnera également et n'a pas le délai de systeminfo:
pour/f "tokens = 2 delims =:"% i in ('ipconfig/all ^ | findstr Search') do SET domain =% i & SET newdomain =% domain: =% & echo% COMPUTERNAME%.% newdomain%
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
FICHIER DOS BATCH POUR APPELER AU-DESSUS DE SCRIPT:
for /f %%a in ('cscript //nologo yourscriptname.vbs') do set FQDN=%%a
echo %FQDN%
pause
Une autre version:
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%
Si vous devez porter des scripts Unix Shell vers Windows ou si vous souhaitez simplement travailler sur l'interface CLI, jetez un œil à GNUwin32. Il fournit les outils courants tels que cut, grep, etc. pour Windows.
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%