回答:
システムプロパティ([コンピューター名]タブ)で確認できます。
コマンドラインを使用するIPCONFIG /ALL
と、「ホスト名」フィールドと「プライマリDNSサフィックス」フィールドを実行して確認できます。
hostname
Windows のコマンドには、このようなオプションはありません。ただし、これでうまくいくはずです。
echo %COMPUTERNAME%.%USERDNSDOMAIN%
またはfind /I "string"
、ホストset
またはドメインのgrep(Windowsの場合:)から、systeminfo
またはipconfig -all
名前を付けて、他の場所に貼り付けることができます。
編集:Typoを修正しました。ありがとう、ブノワ
更新:
この変数%USERDNSDOMAIN%
は、ドメインにログオンしている場合にのみ使用できます... DHCPサーバーから取得したDNSサフィックスは、環境変数に入れられません(私が知る限り)。
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
スクリプトを超えて呼び出すDOSバッチファイル:
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
場合は、必ずdouble を使用してください。例えば%%i
このようにしたい理由は、ユーザーとコンピューターが異なるドメインに%USERDNSDOMAIN%
属している場合、コンピューターに適用したときに正しくないことです。ドメインが1つだけで子ドメインがない場合は、必要に応じて上記の他のソリューションを使用できます。
UnixシェルスクリプトをWindowsに移植する必要がある場合、またはCLIで作業したい場合は、GNUwin32をご覧ください。Windows用のcut、grepなどの一般的なツールを提供します。