首页 > 解决方案 > 无法使用 powershell 获取打印机列表

问题描述

我已经部署了一台带有“printui / ga”的共享打印机来在计算机上工作。现在,当我尝试从这些计算机获取打印机列表时,我无法看到共享打印机。我使用了 get-wmiobject 和 get-printer 方法仍然没有运气。

如果我找不到解决方案,我将开始寻找使用 PowerShell 方法安装共享打印机的方法。

标签: powershell

解决方案


你是说你这样做了却一无所获?

Get-Command -Name '*printer*' |  Format-Table -AutoSize
# Results
<#
CommandType Name                 Version Source                      
----------- ----                 ------- ------                      
Function    Add-Printer          1.1     PrintManagement             
Function    Add-PrinterDriver    1.1     PrintManagement             
Function    Add-PrinterPort      1.1     PrintManagement             
Function    Get-Printer          1.1     PrintManagement             
Function    Get-PrinterDriver    1.1     PrintManagement             
Function    Get-PrinterPort      1.1     PrintManagement             
Function    Get-PrinterProperty  1.1     PrintManagement             
Function    Read-PrinterNfcTag   1.1     PrintManagement             
Function    Remove-Printer       1.1     PrintManagement             
Function    Remove-PrinterDriver 1.1     PrintManagement             
Function    Remove-PrinterPort   1.1     PrintManagement             
Function    Rename-Printer       1.1     PrintManagement             
Function    Set-Printer          1.1     PrintManagement             
Function    Set-PrinterProperty  1.1     PrintManagement             
Function    Write-PrinterNfcTag  1.1     PrintManagement             
Cmdlet      Out-Printer          3.1.0.0 Microsoft.PowerShell.Utility
#>

Get-Printer |  Format-Table -AutoSize
# Results
<#
Name                          ComputerName Type  DriverName                        PortName                                                                                                      
----                          ------------ ----  ----------                        --------                                                                                                      
...                                                                                                         
Microsoft XPS Document Writer              Local Microsoft XPS Document Writer v4  PORTPROMPT:                                                                                                   
Microsoft Print to PDF                     Local Microsoft Print To PDF            PORTPROMPT:                                                                                                   
Fax                                        Local Microsoft Shared Fax Driver       SHRFAX:                                                                                                       
...                                                                   
#>


# Get specifics for a module, cmdlet, or function
(Get-Command -Name Get-Printer).Parameters
(Get-Command -Name Get-Printer).Parameters.Keys
Get-help -Name Get-Printer -Examples
# Results
<#
Get-Printer –Name "Microsoft XPS Document Writer"

Get-Printer –Name "Microsoft XPS Document Writer" | Format-List

Get-Printer -ComputerName PrintServer
$Printer = Get-Printer -Name “Microsoft XPS Document Writer"
Rename-Printer -InputObject $printer "MXDW"
#>
Get-help -Name Get-Printer -Full
Get-help -Name Get-Printer -Online

更新

继续我的评论。

您仍将使用相同的 cmdlet,但在远程调用打印机目标时

Get-Printer -ComputerName '\\RemoteHostName'

# Or

$ComputerList | 
Invoke-Command -ComputerName $PSItem -ScriptBlock {Get-Printer}

既然您使用 printui 来执行此操作,为什么不直接使用 printui 从远程主机获取列表​​/信息?

printui.exe /?

# Results
<#
Examples:
...
   Enumerate per machine printer connections: 
rundll32 printui.dll,PrintUIEntry /ge /c\\machine
...
   Get printer settings: 
rundll32 printui.dll,PrintUIEntry /Xg /n "printer"
   Get printer settings saving results in a file: 
rundll32 printui.dll,PrintUIEntry /f "results.txt" /Xg /n "printer"
...
#>

推荐阅读