¿Equivalente al comando de Linux `hostname --fqdn` en Windows XP?

33

¿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 --fqdndisponible en Linux.

Grundlefleck
fuente

Respuestas:

18

Puede encontrarlo en las propiedades del sistema (pestaña "Nombre del equipo").

Con la línea de comando, puede ejecutar IPCONFIG /ALLy echar un vistazo a los campos "Nombre de host" y "Sufijo DNS primario".

Massimo
fuente
Las dos formas diferentes dan resultados diferentes. ipconfig da lo que esperaba, pero en la pestaña 'Nombre del equipo', el dominio es diferente. Parece un nombre de grupo de trabajo en lugar de un sufijo de dominio. ¿Es esto algo específico de Windows donde de alguna manera son equivalentes?
Grundlefleck
En la pestaña "Nombre del equipo", debe mirar el valor "Nombre completo del equipo"; el valor de "dominio" es el dominio de Windows (o grupo de trabajo) del que es miembro la computadora.
Massimo
Ah bien. Bueno, debe haber algo mal con la instalación en esta máquina, ya que solo muestra el nombre de host (con un punto al final). Probablemente no habría tenido que hacer la pregunta si la hubiera estado mostrando como se esperaba :-D. +1
Grundlefleck
¿Has intentado hacer clic en "Cambiar" y luego en "Más"?
Massimo
1
Solo recuerde que algunos sistemas están localizados, por lo que buscar la línea adecuada por nr puede ser mejor en algunos casos (es la línea 5 afaik).
RnR
28

No existe tal opción para el hostnamecomando 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 seto systeminfoo ipconfig -allnombrarlo 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).

PEra
fuente
1
La segunda variable es "% USERDNSDOMAIN%".
Benoit
% USERDNSDOMAIN% no parece ser una variable en este sistema. A menos que esté haciendo algo mal: H: \> echo% COMPUTERNAME%.% USERDNSDOMAIN% [nombre correcto].% USERDNSDOMAIN%
Grundlefleck
Ach, olvidé que pegar eso sería horrible en los comentarios.
Grundlefleck
2
Puede usar WMIC para recuperar el nombre de dominio:wmic computersystem get domain
Noam Manos
7

El comando es:

ping -a localhost
Bozojoe
fuente
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

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
usuario209990
fuente
1

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

usuario295947
fuente
1

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%

Tony
fuente
1
Use cuatro espacios iniciales para formatear su respuesta como 'código'. El ubicuo enlace de 'ayuda' es realmente útil.
Xalorous
0

Si necesita portar scripts de shell de Unix a Windows o simplemente desea trabajar en la CLI, eche un vistazo a GNUwin32 . Proporciona las herramientas comunes como cortar, grep, etc. para Windows.

PEra
fuente
0

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

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%
sintaxis53
fuente