获取网络中的打印服务器

时间:2014-06-26 11:18:56

标签: powershell networking printing

我想编写一个PowerShell脚本来获取网络中的所有打印服务器。

我使用了以下LDAP查询,但它只返回连接了网络打印机的服务器。但是没有连接远程打印机的其他打印服务器。 这是我用来获取打印服务器的代码(但只获得带有n / w打印机的服务器)

Import-Module ActiveDirectory
[array]$testarray = Get-ADObject -LDAPFilter "(&(&(&(uncName=*)(objectCategory=printQueue))))" -properties *|Sort-Object -Unique -Property servername |select servername
$testarray

2 个答案:

答案 0 :(得分:0)

您可以尝试像Get-WMIObject win32_printer | select name,local这样的foreach-object循环包含的内容:

$servers | ForEach-Object {
Get-WMIObject Win32_Printer -computername $_ | Where-Object {$_.local -like 'False'} | select Name,local,SystemName | format-table -a
}

$servers可以是您需要检查的任何服务器的范围。

使用Get-WMIObject Win32_Printer | select *查看要重新报告的属性,并将其包含在脚本的| select Name,local,SystemName部分

答案 1 :(得分:0)

您可以使用Get-ADComputerGet-Printer的组合列出加入您网域的计算机上的所有共享打印机队列:

Get-ADComputer -Filter * | % {
  $computer = $_.Name
  Get-Printer -Computer $computer | ? { $_.Shared } | select -Expand Name
}

但这并不包括不属于域名成员的计算机。