0

我在嘗試將批處理腳本轉換爲PowerShell。我遇到過這段代碼,誰能告訴我如何將其轉換爲PowerShell?檢查DSQuery在PowerShell中是否成功?

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

我想做的事情somne​​thing,如:

$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語句時返回實際退出代碼。