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

33

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 --fqdndisponible sous Linux.

Grundlefleck
la source

Réponses:

18

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 /ALLet consulter les champs "Nom de l'hôte" et "Suffixe DNS principal".

Massimo
la source
Les deux manières différentes donnent des résultats différents. ipconfig donne ce à quoi je m'attendais, mais dans l'onglet 'Nom de l'ordinateur', le domaine est différent. Cela ressemble à un nom de groupe de travail plutôt qu'à un suffixe de domaine. Est-ce une chose spécifique à Windows où ils sont en quelque sorte équivalents?
Grundlefleck
Dans l'onglet "Nom de l'ordinateur", vous devriez regarder la valeur "Nom complet de l'ordinateur"; la valeur "domaine" est le domaine Windows (ou groupe de travail) dont l'ordinateur est membre.
Massimo
Ah oui. Bien, il doit y avoir quelque chose qui ne va pas avec l’installation sur cette machine, car elle ne montre que le nom d’hôte (avec un point à la fin). N'aurait probablement pas eu à poser la question si elle l'avait montré comme prévu :-D. +1
Grundlefleck
Avez-vous essayé de cliquer sur "Modifier" puis sur "Plus"?
Massimo
1
Rappelez-vous que certains systèmes sont localisés. Il peut donc être préférable de rechercher la ligne appropriée par numéro (il s’agit toujours de la ligne 5).
RnR
28

Il n'y a pas une telle option pour la hostnamecommande 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 setou systeminfoor ou ipconfig -allnommez-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).

PEra
la source
1
La deuxième variable est "% USERDNSDOMAIN%".
Benoit
% USERDNSDOMAIN% ne semble pas être une variable sur ce système. À moins que je ne fasse quelque chose de mal: H: \> echo% NOMORDINATEUR%.% USERDNSDOMAIN% [nom correct].% USERDNSDOMAIN%
Grundlefleck
Ach, j'ai oublié ce collage qui serait horrible dans les commentaires.
Grundlefleck
2
Vous pouvez utiliser WMIC pour récupérer un nom de domaine:wmic computersystem get domain
Noam Manos
7

La commande est:

ping -a localhost
Bozojoe
la source
1

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
utilisateur209990
la source
1

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 %isi 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.

utilisateur295947
la source
1

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%

Tony
la source
1
Utilisez quatre espaces en tête pour formater votre réponse en tant que «code». Le lien 'aide' omniprésent est réellement utile.
Xalorous
0

Si vous devez porter des scripts de shell Unix sous Windows ou si vous souhaitez simplement travailler sur la CLI, consultez GNUwin32 . Il fournit les outils courants tels que cut, grep, etc. pour Windows.

PEra
la source
0

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

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%
syntaxe53
la source