繁体   English   中英

在Powershell中使用来自SCCM的WQL查询

[英]Using WQL query from SCCM in powershell

我在SCCM中有一个查询,它将使用打印机IP地址并返回SCCM中所有已安装打印机的工作站。 我要创建一个将执行上述查询并使用返回的工作站的Powershell脚本,然后在工作站的打印队列中列出当前的打印作业。

我知道您可以使用Get-CIMInstance -query WMI中的其他内容。 如果我尝试在本地查找信息,则效果很好。 但是,如果我将WQL查询转储到Here-String并将其分配给变量,然后使用Get-CIMInstance -query调用它,则会返回错误,指出invalid query 当我使用Get-WmiObject -Namespace "root\\wmi" -Query $WQlquery时,会发生相同的事情

那么如何在Powershell中使用SCCM的WQL查询呢? 这是到目前为止我所拥有的一个例子:

$WQLquery = @"
select SMS_R_System.Name from
SMS_R_System inner join
SMS_G_System_PRINTER_DEVICE on
SMS_G_System_PRINTER_DEVICE.ResourceID = 
SMS_R_System.ResourceId where 
SMS_G_System_PRINTER_DEVICE.PortName like "10.10.10.10"
"@

Get-CIMInstance -query $WQLquery

假设工作正常并返回了工作站ID列表,那么我将使用Get-Printjob cmdlet列出每个工作站打印队列中的当前作业。 我发现这里已经发布了一些问题,这些问题已帮助我实现了这一目标。 任何其他帮助将不胜感激。 放轻松我,这里还是个新手。

如果要从远程计算机运行,则需要为sccm站点root\\sms\\site_SITECODE和sccm-server指定名称空间。 例如:

$WQLquery = @"
select SMS_R_System.Name from
SMS_R_System inner join
SMS_G_System_PRINTER_DEVICE on
SMS_G_System_PRINTER_DEVICE.ResourceID = 
SMS_R_System.ResourceId where 
SMS_G_System_PRINTER_DEVICE.PortName like "10.10.10.10"
"@

Get-WmiObject -Query $WQLquery -ComputerName "SCCMSERVER" -Namespace "root\sms\site_PRI"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM