微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 PowerShell 中检查打印机状态

如何解决在 PowerShell 中检查打印机状态

尝试检测 USB 打印机何时插入或未插入,但 Get-Printer 是错误的工具或未获取正确的数据。有什么我想念的吗?请注意,当我在 .NET 应用程序中获取数据时,我也看到了这个问题。

Command Output + Printer Status

All Status Properties for Printer

解决方法

您不能仅使用您自己和@Ash 提到的 cmdlet 来完成您的用例...

' ...检测 USB 打印机何时插入...'

你必须有一个活动的事件来监听。

例如:U盘。

Register-WmiEvent -Query "Select * from __InstanceCreationEvent within 5 where targetinstance isa 'win32_logicaldisk'" -SourceIdentifier disk -Timeout 1000
Get-Event -SourceIdentifier disk
$DiskInsertEvent = Get-Event -SourceIdentifier disk
$DiskInsertEvent.SourceEventArgs.NewEvent.TargetInstance

或者在活动中向用户发送消息...

Register-WmiEvent -Query "select * from __InstanceCreationEvent within 5 where TargetInstance ISA 'Win32_PnpEntity' and TargetInstance.Description like '%USB Mass Storage Device%'" -Action { Write-Host "Please talk to IT about your USB device." -ForegroundColor Red }

当然,您需要指定正确的设备类型。

或任何 USB 设备

Register-WmiEvent -Class win32_DeviceChangeEvent -SourceIdentifier deviceChange
$newEvent = Wait-Event -SourceIdentifier deviceChange

然后立即查询通过您和@Ash 已经提到的 cmdlet 插入的内容

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。