我想编写一个PowerShell脚本来获取网络中的所有打印服务器。
我使用了以下LDAP查询,但它只返回连接了网络打印机的服务器。但是没有连接远程打印机的其他打印服务器。 这是我用来获取打印服务器的代码(但只获得带有n / w打印机的服务器)
Import-Module ActiveDirectory
[array]$testarray = Get-ADObject -LDAPFilter "(&(&(&(uncName=*)(objectCategory=printQueue))))" -properties *|Sort-Object -Unique -Property servername |select servername
$testarray
答案 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-ADComputer
和Get-Printer
的组合列出加入您网域的计算机上的所有共享打印机队列:
Get-ADComputer -Filter * | % {
$computer = $_.Name
Get-Printer -Computer $computer | ? { $_.Shared } | select -Expand Name
}
但这并不包括不属于域名成员的计算机。