【问题标题】:check if DSQuery was successful in PowerShell?检查 DSQuery 在 PowerShell 中是否成功?
【发布时间】:2017-08-22 00:38:37
【问题描述】:

我正在尝试将批处理脚本转换为 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
}

【问题讨论】:

  • 使用正确的格式。

标签: powershell batch-file active-directory windows-scripting


【解决方案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 语句时返回实际的退出代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-11
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-03
    • 2011-01-20
    • 2013-08-26
    相关资源
    最近更新 更多