web-dev-qa-db-ja.com

Windows XPのLinuxコマンド `hostname --fqdn`と同等ですか?

Windowsの完全修飾ドメイン名を見つける方法はありますかXPボックス?

Windowsに慣れていないので、Linuxで使用可能なhostname --fqdnコマンドと同等のものとして、私が探しているものを説明します。

33
Grundlefleck

システムのプロパティ([コンピュータ名]タブ)で確認できます。

コマンドラインを使用すると、IPCONFIG /ALLと「ホスト名」と「プライマリDNSサフィックス」フィールドを見てください。

19
Massimo

Windowsでは、hostnameコマンドにそのようなオプションはありません。ただし、これでうまくいくはずです。

echo %COMPUTERNAME%.%USERDNSDOMAIN%

または、setまたはsysteminfoまたはfind /I "string"の名前からホストとドメインのgrep(Windowsの場合:ipconfig -all)を取得して、他の場所に貼り付けることができます。

編集:誤植を修正しました。ありがとうブノワ

更新:変数%USERDNSDOMAIN%は、ドメインにログオンしている場合にのみ使用できます... DHCPサーバーから取得したDNSサフィックスは、環境変数に入れられません(可能な限り)見つけ出す)。

28
PEra

コマンドは次のとおりです。

ping -a localhost
9
Bozojoe

コマンドプロンプトからこれを試してください:

FOR /F "tokens=2" %i in ('systeminfo ^| find /i "Domain"') do echo %computername%.%i

二重の% ために %iこれをバッチファイルで使用する場合。例えば%%i

このようにしたい理由は、ユーザーとコンピュータが異なるドメインにある場合、%USERDNSDOMAIN%をコンピューターに適用すると正しく表示されません。ドメインが1つだけで子ドメインがない場合は、必要に応じて上記の他のソリューションを使用できます。

1
user295947

これも機能し、systeminfoの遅延はありません。

/ f "tokens = 2 delims =:"の場合、%i in( 'ipconfig/all ^ | findstr Search')do domain =%i&SET newdomain =%domain:=%&echo%COMPUTERNAME%。%newdomain%

1
Tony

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
1
user209990

別のバージョン:

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%
0
syntax53

UnixシェルスクリプトをWindowsに移植する必要がある場合、またはCLIで作業する場合は、GNUwin32を参照してください。 Windows用のcut、grepなどの一般的なツールを提供します。

0
PEra

これは、このためのCMDスクリプトです。

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