Windowsでサードパーティのアプリケーションを使用せずにLinuxの同様のコマンド ドメイン名 が必要です。
そのようなコマンドはありますか?
試してください:
echo %USERDOMAIN%
または
echo %USERDNSDOMAIN%
それでもうまくいかない場合は、systeminfoを使用してみてください。
systeminfo | findstr /B /C:”Domain”
@マイク:細かい解決策-しかし、多言語環境で問題が発生しました。ドイツ語と英語のサーバーがあります。
wmic.exeを使用するようにスクリプトを変更しました。
@REM + Find the computer domain name
@echo off
FOR /F "usebackq tokens=*" %%a IN (`wmic.exe COMPUTERSYSTEM GET DOMAIN /Value`) DO (
@((ECHO %%a | findstr /i /c:"Domain=") && SET _str=%%a) > NUL 2>&1
)
FOR /F "tokens=2 delims=^=" %%a IN ("%_str%") do SET _computerDomain=%%a
SET _computerDomain=%_computerDomain: =%
SET _fqdn=%COMPUTERNAME%.%_computerDomain%
echo %_fqdn%
あなたのアイデアのためのTHX
コマンドプロンプトで以下のコマンドを実行できます。
set user
以下のスナップショットに示すように、ドメイン名に加えて、ドメインに関連するより多くの情報を提供します。
重要な注意:コンピュータが登録されているドメインは、コンピュータが登録されているドメインと同じではないログインしたユーザーが登録されました。あるドメインに登録されているユーザーが別のドメインのコンピューターにログインする方法については、 ドメインの信頼における推移性と方向 を参照してください。
%USERDOMAIN%とネットワークコンピュータドメインは異なる場合があります。 systeminfoコマンドは正しい答えを取得しますが、遅いです!これが私が使った解決策です:
@REM + find the computer domain name
FOR /F "usebackq tokens=*" %%a IN (`ipconfig /all`) DO (
@((ECHO %%a | findstr /i /c:"Primary Dns Suffix") && SET _str=%%a) > NUL 2>&1
)
FOR /F "tokens=2 delims=:" %%a IN ("%_str%") do SET _computerDomain=%%a
SET _computerDomain=%_computerDomain: =%
SET _fqdn=%COMPUTERNAME%.%_computerDomain%
ローカルユーザーを使用してドメインを取得するには、1行で十分です。
FOR/F "usebackq tokens = 2 delims ==" %% a IN(
wmic.exe COMPUTERSYSTEM GET DOMAIN /Value ^|find /i "domain"
)_computerDom = %% aを設定します