Чи є спосіб знайти повноцінне доменне ім'я вікна Windows XP?
Будучи незнайомим з Windows, я б описав те, що шукаю, як еквівалент команди, hostname --fqdn
доступної в Linux.
Чи є спосіб знайти повноцінне доменне ім'я вікна Windows XP?
Будучи незнайомим з Windows, я б описав те, що шукаю, як еквівалент команди, hostname --fqdn
доступної в Linux.
Відповіді:
Ви можете знайти його у властивості системи (вкладка "Ім'я комп'ютера").
За допомогою командного рядка можна запустити IPCONFIG /ALL
та ознайомитись із полями "Ім'я хоста" та "Первинний суфікс DNS".
Немає такої опції для hostname
команди у Windows. Однак для цього слід зробити фокус:
echo %COMPUTERNAME%.%USERDNSDOMAIN%
Або ви можете виокремити (під Windows: find /I "string"
) для Host- і домена з set
або systeminfo
або ipconfig -all
імені та склейте її в іншому місці.
Редагувати: виправлено помилку друку. Дякую Бенуа
Оновлення:
змінна %USERDNSDOMAIN%
доступна лише під час входу в домен ... Суфікс DNS, який ви отримуєте з сервера DHCP, не вводиться в змінну середовища (наскільки я міг зрозуміти).
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
ФАЙЛ ДОСІЙНОЇ ДОСЛІДИ ДЛЯ ДЛЯ ДЛЯ ДЛЯ ДЛЯ ДЛЯ ДЛЯ ДОВІДКОВИХ СКРИПТ:
for /f %%a in ('cscript //nologo yourscriptname.vbs') do set FQDN=%%a
echo %FQDN%
pause
Спробуйте це з командного рядка:
FOR /F "tokens=2" %i in ('systeminfo ^| find /i "Domain"') do echo %computername%.%i
не забудьте використовувати подвійний %
для, %i
якщо ви використовуєте це в пакетному файлі. напр%%i
Причина, яку ви можете зробити так, полягає в тому, що якщо ваші користувачі та комп’ютери знаходяться в різних областях, воно %USERDNSDOMAIN%
не буде правильним при застосуванні до комп'ютера. Якщо у вас є лише один домен і немає дочірніх доменів, тоді ви можете використовувати інші рішення вище, якщо хочете.
Це також буде працювати і не матиме затримки systeminfo:
для / f "tokens = 2 delims =:"% i in ('ipconfig / all ^ | findstr Пошук') зробіть SET домен =% i & SET newdomain =% domain: =% & echo% COMPUTERNAME%.% newdomain%
Інша версія:
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%