检查 DSQuery 在 PowerShell 中是否成功?
check if DSQuery was successful in PowerShell?
我正在尝试将批处理脚本转换为 PowerShell。我遇到了这段代码,谁能告诉我如何将其转换为 PowerShell?
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
}
dsquery
没有 return 退出代码,所以我怀疑您的批处理命令是否有效。此外,该命令生成字符串输出,而不是进程或作业对象,因此没有 HasSucceeded
属性 要检查。
您可以做的是检查收集在变量 $dsq
中的命令的输出。如果该变量为空,则该命令未找到 OU。 PowerShell automatically interprets $null
values as $false
,所以像这样的东西应该可以工作:
$dsq = & dsquery ou ...
if (-not $dsq) {
echo 'OU was not found.'
exit 1
}
旁注:我建议对 运行 外部命令使用调用运算符 (&
),并 return 实际退出使用 exit
语句时的代码。
我正在尝试将批处理脚本转换为 PowerShell。我遇到了这段代码,谁能告诉我如何将其转换为 PowerShell?
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
}
dsquery
没有 return 退出代码,所以我怀疑您的批处理命令是否有效。此外,该命令生成字符串输出,而不是进程或作业对象,因此没有 HasSucceeded
属性 要检查。
您可以做的是检查收集在变量 $dsq
中的命令的输出。如果该变量为空,则该命令未找到 OU。 PowerShell automatically interprets $null
values as $false
,所以像这样的东西应该可以工作:
$dsq = & dsquery ou ...
if (-not $dsq) {
echo 'OU was not found.'
exit 1
}
旁注:我建议对 运行 外部命令使用调用运算符 (&
),并 return 实际退出使用 exit
语句时的代码。