Powershell IF语句

RyPath

我正在尝试创建一个快速的IF语句来禁用/启用网络摄像头。

到目前为止,我已经提出了:

$InstIDDisabled = Get-PnpDevice -FriendlyName "Camname" -Status error
$InstIDEnabled = Get-PnpDevice -FriendlyName "Camname" -Status OK
If($InstIDDisabled.Status -eq "error"){
Enable-PnpDevice -InstanceId $InstIDDisabled.InstanceId -Confirm:$false
else
Disable-PnpDevice -InstanceId $InstIDEnabled.InstanceId -Confirm:$false}

我得到的结果是:

Get-PnpDevice : No matching Win32_PnPEntity objects found by CIM query for instances of the ROOT\cimv2\Win32_PnPEntity class on the  CIM server: 
SELECT * FROM Win32_PnPEntity  WHERE ((Name LIKE 'Camname')) AND ((Status = 'error')). Verify query parameters and retry.
At line:1 char:19
+ ... DDisabled = Get-PnpDevice -FriendlyName "Camname" -Status erro ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Win32_PnPEntity:String) [Get-PnpDevice], CimJobException
    + FullyQualifiedErrorId : CmdletizationQuery_NotFound,Get-PnpDevice

该错误似乎无法通过CIM查询看到网络摄像头,但是当单独运行(删除IF元素)时,它可以工作。

我要去哪里错了?

安德鲁·瑞安·戴维斯(Andrew Ryan Davis)

看来您的错误出现在第1行,但这也许是因为您在这里混淆了“ camname”。

您所指的问题可能是由于您的if/else语句未正确括在括号中

另请注意,我认为您无需显式检查$InstIDDisabled等于“错误”的属性,因为无论如何您仅返回具有该属性的对象,因此您只需检查变量是否具有if语句。

$InstIDDisabled = Get-PnpDevice -FriendlyName "Camname" -Status error
$InstIDEnabled = Get-PnpDevice -FriendlyName "Camname" -Status OK
if ($InstIDDisabled) {
    Enable-PnpDevice -InstanceId $InstIDDisabled.InstanceId -Confirm:$false
} 
else {
    Disable-PnpDevice -InstanceId $InstIDEnabled.InstanceId -Confirm:$false
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PowerShell“或”语句

来自分类Dev

Powershell if语句

来自分类Dev

Powershell中的switch语句

来自分类Dev

PowerShell Active Directory IF语句

来自分类Dev

Powershell if管道中的语句

来自分类Dev

powershell if语句奇怪的行为

来自分类Dev

Powershell if else语句

来自分类Dev

Powershell Goto语句替换

来自分类Dev

Powershell IF语句语法问题

来自分类Dev

If Else 语句 Powershell CSV

来自分类Dev

PowerShell If 语句失败

来自分类Dev

Powershell“ where”语句-不包含

来自分类Dev

比较if语句Powershell中的对象

来自分类Dev

Powershell 将 IF 语句写入变量

来自分类Dev

如果之后,PowerShell缺少语句块

来自分类Dev

Powershell中是否有锁语句

来自分类Dev

Powershell语句进入调试器

来自分类Dev

PowerShell:在“ IF”语句中使用$ env:userprofile

来自分类Dev

在Powershell中使用if语句移动文件

来自分类Dev

PowerShell中的IF语句是否有简写形式?

来自分类Dev

Powershell脚本不会监听if语句

来自分类Dev

PowerShell cmdlet参数列表中的if语句

来自分类Dev

PowerShell If语句:IF等于多个特定文本

来自分类Dev

C#PowerShell-AddScript作为多个语句

来自分类Dev

Powershell-ForEach语句-连接结果

来自分类Dev

Powershell Graph API SDK更新语句

来自分类Dev

PowerShell:为什么while()语句永远循环?

来自分类Dev

无法在PowerShell中使用多个-replace语句

来自分类Dev

使用替换语句简化 PowerShell 脚本