Czy istnieje sposób na znalezienie w pełni kwalifikowanej nazwy domeny dla systemu Windows XP?
Nie znając systemu Windows opisałbym to, czego szukam, jako odpowiednik polecenia hostname --fqdn
dostępnego w systemie Linux.
Czy istnieje sposób na znalezienie w pełni kwalifikowanej nazwy domeny dla systemu Windows XP?
Nie znając systemu Windows opisałbym to, czego szukam, jako odpowiednik polecenia hostname --fqdn
dostępnego w systemie Linux.
Odpowiedzi:
Można go znaleźć we właściwościach systemu (karta „Nazwa komputera”).
Za pomocą wiersza polecenia możesz uruchomić IPCONFIG /ALL
i rzucić okiem na pola „Nazwa hosta” i „Sufiks podstawowej domeny DNS”.
W systemie hostname
Windows nie ma takiej opcji dla polecenia. Jednak powinno to załatwić sprawę:
echo %COMPUTERNAME%.%USERDNSDOMAIN%
Lub możesz grep (pod Windows find /I "string"
:) dla Hosta i Domeny z set
lub systeminfo
lub ipconfig -all
nazwać i skleić go razem w innym miejscu.
Edycja: naprawiono literówkę. Dzięki Benoit
Aktualizacja:
Zmienna %USERDNSDOMAIN%
jest dostępna tylko po zalogowaniu do domeny ... Sufiks DNS otrzymany z serwera DHCP nie jest umieszczany w zmiennej środowiskowej (o ile mogłem się domyślić).
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
PLIK SERII DOS DO WEZWANIA POWYŻEJ PISEMU:
for /f %%a in ('cscript //nologo yourscriptname.vbs') do set FQDN=%%a
echo %FQDN%
pause
Wypróbuj to w wierszu polecenia:
FOR /F "tokens=2" %i in ('systeminfo ^| find /i "Domain"') do echo %computername%.%i
Pamiętaj, aby użyć dwukrotnie %
na %i
razie za pomocą tego w program wsadowy. na przykład%%i
Powodem, dla którego możesz chcieć to zrobić w ten sposób, jest: jeśli Twoi użytkownicy i komputery znajdują się w różnych domenach, %USERDNSDOMAIN%
nie będą poprawne po zastosowaniu na Twoim komputerze. Jeśli masz tylko jedną domenę i nie ma domen podrzędnych, możesz skorzystać z innych powyższych rozwiązań, jeśli chcesz.
Działa to również i nie ma opóźnienia systeminfo:
for / f "tokeny = 2 delims =:"% i in ('ipconfig / all ^ | findstr Search') wykonaj SET domain =% i & SET newdomain =% domain: =% i echo% COMPUTERNAME%.% newdomain%