QA@IT

batファイルによるdsqueryの結果吐き出し

11393 PV

不慣れながら、AD管理業務者です。
AD管理にお詳しい方、以下を教えていただけませんでしょうか。

AD環境「XXX.ad.com」上のou「TESTOU」に、
PC1/PC2/PC3 が存在し、
コマンドプロンプトにて以下が書かれた
batファイルを実行します。

dsquery computer -name "PC1" | dsrm -noprompt > LOG1.txt
dsquery computer -name "PC2" | dsrm -noprompt >> LOG1.txt
dsquery computer -name "PC3" | dsrm -noprompt >> LOG1.txt
dsquery computer -name "PC4" | dsrm -noprompt >> LOG1.txt
dsquery computer -name "PC5" | dsrm -noprompt >> LOG1.txt

実行後、LOG1.txt には 以下と書かれておりました。

dsrm 成功:CN=PC1,OU=TESTOU,DC=XXX,DC=ad,DC=com
dsrm 成功:CN=PC2,OU=TESTOU,DC=XXX,DC=ad,DC=com
dsrm 成功:CN=PC3,OU=TESTOU,DC=XXX,DC=ad,DC=com

つまり、ログには
PC1〜3は削除成功したとだけ書かれており、PC4及びPC5 が無かったと書かれておらず、
結果確認として、これらのPCが存在せず実行完了できなかったということを知ることができません。

この結果をログに書き込ませるにはどうすればよろしいでしょうか。
お知恵を拝借致したく、よろしくお願いします。

回答

コマンドの実行結果には「標準出力」と「標準エラー出力」があります。
現在のバッチファイルでは「標準出力」のみログに記載する内容になっています。

両方をログへ出力する場合には次のように記載します。

dsquery computer -name "PC1" | dsrm -noprompt > LOG1.txt 2>&1
dsquery computer -name "PC2" | dsrm -noprompt >> LOG1.txt 2>&1
dsquery computer -name "PC3" | dsrm -noprompt >> LOG1.txt 2>&1
dsquery computer -name "PC4" | dsrm -noprompt >> LOG1.txt 2>&1
dsquery computer -name "PC5" | dsrm -noprompt >> LOG1.txt 2>&1

標準エラー出力をファイルへ出力 - リダイレクトとパイプ - コマンドプロンプトの使い方 : https://www.adminweb.jp/command/redirect/index3.html

編集 履歴 (0)
  • moguraさん
    ありがとうございます!
    基本的なところでお恥ずかしい限りです。
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。