2017-03-17 41 views
0

我有Windows 7专业版的PC上的问题。我需要列出网络打印机在我的本地网络,我试图用命令在PowerShell中运行列表中的对象类:win32_printer不会出现在WmiObject可以(Windows电源外壳)

Get-WMIObject -List | where {$_.name -match 'win32_printer'} 

这说明空的,任何建议来解决这个问题?

编辑: 我对获得网络打印机脚本是这样的:

Set-Location -Path C:\; get-WmiObject -class Win32_printer | ConvertTo-Json | Set-Content -Encoding utf8 C:\\xampp\\htdocs\\project\\view\\data\\printers.json 

我需要列出一个JSON文件的打印机,在我的电脑上运行良好,但在PC,我需要运行此脚本失败

+0

去阅读文档的AD模块'GET-WMIObject';你想使用'-class'参数。请注意,有两个相关的类;一个寻址“本地”打印机(即不由另一台计算机提供服务),另一个寻址由另一台计算机提供服务的网络打印机。 –

+0

@JeffZeitlin'Win32_Printer'列出了本地和网络打印机。 – BenH

+0

@ BenH - 我们遇到过这样的情况:'Win32_Printer'没有捕获到网络打印机的打印机连接;对于那些,我们需要'Win32_PrinterConnection'。 –

回答

1

你的命令列出所有WMI类,然后筛选出所有这些包含Win32_Printer这些类。看起来你想要使用:

Get-WMIObject Win32_Printer 

这将列出所有连接到您的计算机(不是所有的都在您的网络上)的打印机。请注意,它只会显示连接到您的用户帐户的网络打印机。

如果您正在寻找网络上的所有打印机,你可以列出所有的Active Directory中发布的队列

Get-ADObject -Filter "ObjectCategory -eq 'printQueue'" 

注:此命令要求从RSAT