web-dev-qa-db-fra.com

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

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.

33
Grundlefleck

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

19
Massimo

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

28
PEra

La commande est:

ping -a localhost
9
Bozojoe

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.

1
user295947

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%

1
Tony

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
1
user209990

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%
0
syntax53

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.

0
PEra

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%
0
Dmitry