Equivalente del comando Linux `hostname --fqdn` in Windows XP?


33

C'è un modo per trovare il nome di dominio completo di una scatola di Windows XP?

Non avendo familiarità con Windows, descriverei ciò che sto cercando come l'equivalente del comando hostname --fqdndisponibile in Linux.

Risposte:


18

Puoi trovarlo nelle proprietà del sistema (scheda "Nome computer").

Con la riga di comando, puoi eseguire IPCONFIG /ALLe dare un'occhiata ai campi "Nome host" e "Suffisso DNS primario".


I due modi diversi danno risultati diversi. ipconfig fornisce ciò che mi aspettavo, ma nella scheda "Nome computer" il dominio è diverso. Sembra un nome di gruppo di lavoro piuttosto che un suffisso di dominio. È una cosa specifica di Windows in cui sono in qualche modo equivalenti?
Grundlefleck,

Nella scheda "Nome computer", dovresti guardare il valore "Nome computer completo"; il valore "dominio" è il dominio di Windows (o gruppo di lavoro) di cui fa parte il computer.
Massimo,

Ah giusto. Bene, ci deve essere qualcosa di sbagliato nell'installazione su questa macchina, in quanto mostra solo il nome host (con un punto alla fine). Probabilmente non avrei dovuto porre la domanda se fosse stata mostrata come previsto MrGreen. +1
Grundlefleck,

Hai provato a fare clic su "Modifica" e poi su "Altro"?
Massimo,

1
Ricorda solo che alcuni sistemi sono localizzati, quindi in alcuni casi cercare la riga corretta per nr potrebbe essere migliore (è la riga 5 dopo).
RnR

28

Non esiste tale opzione per il hostnamecomando in Windows. Tuttavia, questo dovrebbe fare il trucco:

echo %COMPUTERNAME%.%USERDNSDOMAIN%

Oppure puoi grep (sotto Windows find /I "string":) per Host e Dominio da seto systeminfoo ipconfig -allnome e incollarlo insieme altrove.

Modifica: errore di battitura fisso. Grazie Benoit

Aggiornamento: la variabile %USERDNSDOMAIN%è disponibile solo quando si accede a un dominio ... Il suffisso DNS che si ottiene da un server DHCP non viene inserito in una variabile di ambiente (per quanto ho potuto capire).


1
La seconda variabile è "% USERDNSDOMAIN%".
Benoit,

% USERDNSDOMAIN% non sembra essere una variabile su questo sistema. A meno che non stia facendo qualcosa di sbagliato: H: \> echo% COMPUTERNAME%.% USERDNSDOMAIN% [nome corretto].% USERDNSDOMAIN%
Grundlefleck

Ach, ho dimenticato che incollare sarebbe orribile nei commenti.
Grundlefleck,

2
È possibile utilizzare WMIC per recuperare il nome di dominio:wmic computersystem get domain
Noam Manos


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

DOS BATCH FILE PER CHIAMARE SOPRA SCRIPT:

for /f %%a in ('cscript //nologo yourscriptname.vbs') do set FQDN=%%a
echo %FQDN%
pause

1

Prova questo dal prompt dei comandi:

FOR /F "tokens=2" %i in ('systeminfo ^| find /i "Domain"') do echo %computername%.%i

ricordati di usare double %per %ise lo usi in un file batch. per esempio%%i

Un motivo per cui potresti voler farlo in questo modo è: se i tuoi utenti e computer si trovano in domini diversi, %USERDNSDOMAIN%non saranno corretti se applicati al tuo computer. Se hai solo un dominio e nessun dominio figlio, puoi usare le altre soluzioni sopra se vuoi.


1

Questo funzionerà anche e non ha il ritardo di systeminfo:

per / f "token = 2 delims =:"% i in ('ipconfig / all ^ | findstr Search') do SET domain =% i & SET newdomain =% domain: =% & echo% COMPUTERNAME%.% newdomain%


1
Usa quattro spazi iniziali per formattare la tua risposta come "codice". L'onnipresente collegamento di "aiuto" è in realtà utile.
Xalorous,

0

Se devi trasferire gli script della shell Unix su Windows o semplicemente lavorare sulla CLI, dai un'occhiata a GNUwin32 . Fornisce gli strumenti comuni come cut, grep, ecc. Per Windows.


0

Ecco uno script CMD per questo:

@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

Un'altra versione:

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%
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.