0

バッチスクリプトをPowerShellに変換しようとしています。私はこのコードを遭遇しましたが、これをPowerShellに変換する方法を教えてもらえますか?私は同じようsomne​​thingをしたいPowerShellでDSQueryが成功したかどうかを確認しますか?

dsquery ou -domain "$SysDomain" -name "$FuncOU,$DestOU" || (echo OU was not found & Goto :eof) 

$dsq = dsquery ou -domain "$SysDomain" -name "$FuncOU,$DestOU" 
if ($dsq.HasSucceeded -eq $true) { 
    echo "OU was not found" 
    exit 
} 
+0

適切な書式設定を使用してください。 – SteveFest

答えて

1

dsqueryは終了コードを返しませんので、私はあなたのバッチコマンドが今まで働いている可能性があることを疑います。また、このコマンドはプロセスまたはジョブオブジェクトではなく文字列出力を生成するので、チェックするプロパティはHasSucceededになりません。

可能なことは、変数$dsqで収集されたコマンドの出力を確認することです。変数が空の場合、コマンドはOUを検出しませんでした。 PowerShellのautomatically interprets $null values as $falseので、このようなものが動作するはずです:

$dsq = & dsquery ou ... 
if (-not $dsq) { 
    echo 'OU was not found.' 
    exit 1 
} 

サイドノート:私は外部コマンドを実行している、とexit文を使用している場合、実際の終了コードを返すために呼び出し演算子(&)を使用することをお勧めします。

関連する問題