powershell - 无法使用 powershell 获取打印机列表
问题描述
我已经部署了一台带有“printui / ga”的共享打印机来在计算机上工作。现在,当我尝试从这些计算机获取打印机列表时,我无法看到共享打印机。我使用了 get-wmiobject 和 get-printer 方法仍然没有运气。
如果我找不到解决方案,我将开始寻找使用 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"
...
#>
推荐阅读
- c# - 如何在我的 Windows 10 上导出适用于 Mac 和 Linux 的 C# 项目?
- python - Dill 反序列化 NMF 子类失败
- python - python pivot_table 参数“margin”更改值的显示类型 - 如何修复?
- sql - 如何将选定列用作同一子查询的下一个选择的变量
- yii2 - Yii2 从 phpmyadmin 重置密码
- c# - C#动态设置值的方法
- php - Magento2在siteground上安装问题
- json - 如何使用 Serde 序列化和反序列化 Rust 中的元组?
- android-studio - 如何从 Android Studio 加速 Kotlin Multiplatform 的 iOS 应用程序构建
- javascript - ASP.Net Webform:动态添加 HTML 和 javascript