【问题标题】:Test result of command match with false or true命令匹配结果为假或真
【发布时间】:2015-12-21 17:17:02
【问题描述】:

我正在寻找一个根据命令结果返回$true$false的函数。

有点像这样:

Function Get-ChPwd ([string] $sam) {
    $x = Get-ADUser -Identity $sam -Properties CannotChangePassword |
         Select-Object -ExpandProperty CannotChangePassword

    if( $x -match "False") {
        return $false
    } else {
        return $true
    }
}

【问题讨论】:

  • if( $x -match "False")if( $x -match $False) 不一样,这就是你的意思......那和ansgars的答案。

标签: powershell active-directory powershell-3.0


【解决方案1】:

该属性已经有一个布尔值,因此您可以简单地返回该值。不过,我会推荐一个不同的函数名称,所以它遵循naming conventions

Function Test-CannotChangePassword([string]$sam) {
    Get-ADUser -Identity $sam -Properties CannotChangePassword |
        Select-Object -ExpandProperty CannotChangePassword
}

请注意,如果不存在具有该身份的用户,这将引发错误。如果您想返回 $false 而不是在这种情况下引发错误,请使用 -Filter 而不是 -Identity 并将结果转换为 bool:

Function Test-CannotChangePassword([string]$sam) {
    [bool](Get-ADUser -Filter "SamAccountName -eq '$sam'" -Properties CannotChangePassword |
        Select-Object -ExpandProperty CannotChangePassword)
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2015-12-05
    • 2011-10-26
    相关资源
    最近更新 更多