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 --fqdn
disponibile in Linux.
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 --fqdn
disponibile in Linux.
Risposte:
Puoi trovarlo nelle proprietà del sistema (scheda "Nome computer").
Con la riga di comando, puoi eseguire IPCONFIG /ALL
e dare un'occhiata ai campi "Nome host" e "Suffisso DNS primario".
Non esiste tale opzione per il hostname
comando in Windows. Tuttavia, questo dovrebbe fare il trucco:
echo %COMPUTERNAME%.%USERDNSDOMAIN%
Oppure puoi grep (sotto Windows find /I "string"
:) per Host e Dominio da set
o systeminfo
o ipconfig -all
nome 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).
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
DOS BATCH FILE PER CHIAMARE SOPRA SCRIPT:
for /f %%a in ('cscript //nologo yourscriptname.vbs') do set FQDN=%%a
echo %FQDN%
pause
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 %i
se 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.
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%
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.
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%