Có cách nào để tìm tên miền đủ điều kiện của hộp Windows XP không?
Không quen thuộc với Windows Tôi sẽ mô tả những gì tôi đang tìm kiếm tương đương với lệnh hostname --fqdn
có sẵn trong Linux.
Có cách nào để tìm tên miền đủ điều kiện của hộp Windows XP không?
Không quen thuộc với Windows Tôi sẽ mô tả những gì tôi đang tìm kiếm tương đương với lệnh hostname --fqdn
có sẵn trong Linux.
Câu trả lời:
Bạn có thể tìm thấy nó trong thuộc tính hệ thống (tab "Tên máy tính").
Với dòng lệnh, bạn có thể chạy IPCONFIG /ALL
và xem các trường "Tên máy chủ" và "Hậu tố DNS chính".
Không có tùy chọn như vậy cho hostname
lệnh trong windows. Tuy nhiên, điều này nên làm thủ thuật:
echo %COMPUTERNAME%.%USERDNSDOMAIN%
Hoặc bạn có thể grep (trong môi trường Windows: find /I "string"
) cho Host- và Domain từ set
hoặc systeminfo
hoặc ipconfig -all
tên và dán nó lại với nhau ở những nơi khác.
Chỉnh sửa: cố định Typo. Cảm ơn Benoit
Cập nhật:
Biến %USERDNSDOMAIN%
chỉ khả dụng khi đăng nhập vào tên miền ... Hậu tố DNS bạn nhận được từ máy chủ DHCP không được đưa vào biến môi trường (theo như tôi có thể tìm ra).
wmic computersystem get domain
bản thảo:
' 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 ĐỂ GỌI TRÊN SCRIPT:
for /f %%a in ('cscript //nologo yourscriptname.vbs') do set FQDN=%%a
echo %FQDN%
pause
Hãy thử điều này từ dấu nhắc lệnh:
FOR /F "tokens=2" %i in ('systeminfo ^| find /i "Domain"') do echo %computername%.%i
nhớ để sử dụng gấp đôi %
cho %i
nếu sử dụng điều này trong một batchfile. ví dụ%%i
Một lý do bạn có thể muốn làm theo cách này là: nếu người dùng và máy tính của bạn ở các miền khác nhau, điều đó %USERDNSDOMAIN%
sẽ không chính xác khi áp dụng cho máy tính của bạn. Nếu bạn chỉ có một tên miền và không có tên miền con, thì bạn có thể sử dụng các giải pháp khác ở trên nếu muốn.
Điều này cũng sẽ hoạt động và không có sự chậm trễ của systeminfo:
for / f "tokens = 2 delims =:"% i in ('ipconfig / all ^ | findstr Search') do SET domain =% i & SET newdomain =% domain: =% & echo% COMPUTERNAME%.% newdomain%
Đây là một kịch bản CMD cho việc này:
@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%