提取有关WMI查询的一些信息并返回此信息

时间:2019-07-15 14:05:40

标签: powershell

我正在收集有关WMI查询的信息。我将此信息保存在变量中。当我在控制台中编写此变量时,它显示以下内容:

@{PasswordState=7}

但是,当我执行“ If”并检查变量是否包含数字7时,它告诉我不包含数字:

If($PasswordState -contains "7")
{
    Write-Host Contain 7
}
Else
{
    Write-Host Not contain 7
}

有人可以帮助我获得WMI Query的值为INT吗?我的意思是,我只需要PasswordState类中的Lenovo_BiosPasswordSettings的数字状态。 似乎WMI正在返回一个对象,而我的变量对此返回的处理不佳。 谢谢

$PasswordState = Get-WmiObject -Class Lenovo_BiosPasswordSettings -namespace root\wmi | Select PasswordState

Write-Host $PasswordState


If($PasswordState -contains "7")
{
Write-Host Contain 7
}
Else
{
Write-Host Not contain 7
}

我希望输出@{PasswordState=7}只有7。

1 个答案:

答案 0 :(得分:0)

您的输出格式为散列键=值对,而您只需要该值。您可以使用-ExpandProperty参数将值分配给$ PasswordState ...

$PasswordState = Get-WmiObject -Class Lenovo_BiosPasswordSettings -namespace root\wmi | Select-Object -ExpandProperty PasswordState

If ($PasswordState -contains "7") {

    Write-Host "Contain 7"
}

Else {

    Write-Host "Not contain 7"
}

您绝对应该研究和使用最适合您的情况的评估运算符。 -可能不是。