我正在收集有关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。
答案 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"
}
您绝对应该研究和使用最适合您的情况的评估运算符。 -可能不是。