2017-06-09 6 views
0

私はコーディングに新しく、探し回ってみました。私の目標は、ネットワーク上のマシンからドメインコントローラをリモートから取得することです。私はバッチ経由で使用しているコマンドは以下の通りです。 DC名のみを表示するようにnltestの結果をフィルタリングします。私は接続状態とフラグを必要としません。バッチコマンドの結果を削除するには

:Start 
color 02 
cls 
@echo off 
Echo. 
Echo Domain Controller Finder 
Echo. 

Set /P Computer=Enter the Asset ID: 
If "%Computer%"== "" goto BadName 

nltest /sc_query:<Domain_Name> /server:%Computer% 
pause 

Goto End 

:BadName 
Cls 
Echo. 
Echo You have entered an incorrect name or left this field blank 
Echo Please enter a valid Name or press Ctr-C to exit. 
Echo. 
Pause 
Goto Start 

:End 

答えて

0

私はDCの名前が\\で始まることを推測しているので、あなたはこれを試みることができる:

@ECHO OFF 

:Begin 
SET/P "AssetID=Enter the Asset ID: " 
IF "%AssetID%"=="" GOTO BadName 

SET "DCName=" 
FOR /F "TOKENS=1* DELIMS=\" %%A IN (
    'nlest /sc_query:<Domain_Name> /server:%AssetID%^|FIND "\\"' 
) DO SET "DCName=\\%%B" 

IF DEFINED DCName (ECHO %%DCName%% = %DCName% 
    PAUSE & GOTO End) 

:BadName 

注意を。私は:Start:Beginに変更しました。なぜなら、Startがコマンドであり、間違っているから、決定はあなたのものです。

関連する問題