¿Hay alguna manera de encontrar el nombre de dominio completo de un cuadro de Windows XP?
Al no estar familiarizado con Windows, describiría lo que estoy buscando como el equivalente del comando hostname --fqdn
disponible en Linux.
¿Hay alguna manera de encontrar el nombre de dominio completo de un cuadro de Windows XP?
Al no estar familiarizado con Windows, describiría lo que estoy buscando como el equivalente del comando hostname --fqdn
disponible en Linux.
Respuestas:
Puede encontrarlo en las propiedades del sistema (pestaña "Nombre del equipo").
Con la línea de comando, puede ejecutar IPCONFIG /ALL
y echar un vistazo a los campos "Nombre de host" y "Sufijo DNS primario".
No existe tal opción para el hostname
comando en Windows. Sin embargo, esto debería hacer el truco:
echo %COMPUTERNAME%.%USERDNSDOMAIN%
O puede grep (en Windows find /I "string"
:) para Host y Dominio desde set
o systeminfo
o ipconfig -all
nombrarlo y pegarlo en otro lugar.
Editar: error tipográfico fijo. Gracias Benoit
Actualización:
la variable %USERDNSDOMAIN%
solo está disponible cuando inicia sesión en un dominio ... El sufijo DNS que obtiene de un servidor DHCP no se coloca en una variable de entorno (por lo que pude entender).
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
ARCHIVO DE LOTE DE DOS PARA LLAMAR SOBRE EL ESCRITO:
for /f %%a in ('cscript //nologo yourscriptname.vbs') do set FQDN=%%a
echo %FQDN%
pause
Pruebe esto desde el símbolo del sistema:
FOR /F "tokens=2" %i in ('systeminfo ^| find /i "Domain"') do echo %computername%.%i
recuerde usar double %
para %i
si usa esto en un archivo por lotes. p.ej%%i
Una razón por la que puede querer hacerlo de esta manera es: si sus usuarios y computadoras están en dominios diferentes, %USERDNSDOMAIN%
no será correcto cuando se aplique a su computadora. Si solo tiene un dominio y ningún dominio secundario, puede usar las otras soluciones anteriores si lo desea.
Esto también funcionará y no tiene el retraso de systeminfo:
para / f "tokens = 2 delims =:"% i in ('ipconfig / all ^ | findtr Search') hacer SET domain =% i & SET newdomain =% domain: =% & echo% COMPUTERNAME%.% newdomain%
Aquí hay un script CMD para esto:
@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%
Otra 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%