如何通过 PowerShell 将“设备和打印机”中的对象查询到数组中

Posted

技术标签:

【中文标题】如何通过 PowerShell 将“设备和打印机”中的对象查询到数组中【英文标题】:How to query the objects in "Devices and Printers" into an array via PowerShell 【发布时间】:2018-12-14 23:22:57 【问题描述】:

我在尝试查询设备和打印机中的项目时遇到问题。长期目标是删除位于“HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices”中的所有内容,但位于设备和打印机中的设备除外。

除非有其他方法可以做到这一点,否则我只需要“设备和打印机”中的一组项目。

【问题讨论】:

【参考方案1】:

您可以使用Get-Commandgcm 发现命令。

这应该会让你继续前进......

C:\WINDOWS\system32> gcm *printer*

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                                                               



C:\WINDOWS\system32> Get-Printer

Name                           ComputerName    Type         DriverName                PortName        Shared   Published  DeviceType     
----                           ------------    ----         ----------                --------        ------   ---------  ----------     
Send To OneNote 2016                           Local        Send to Microsoft OneN... nul:            False    False      Print          
Microsoft XPS Document Writer                  Local        Microsoft XPS Document... PORTPROMPT:     False    False      Print          
Microsoft Print to PDF                         Local        Microsoft Print To PDF    PORTPROMPT:     False    False      Print          
Fax                                            Local        Microsoft Shared Fax D... SHRFAX:         False    False      Print          
...
...

【讨论】:

谢谢@kory-gill!这肯定会在未来有所帮助。但是,我问的是如何将 Name 字段放入一个数组中。例如,变量 $Devices 只会输出“Send To OneNote 2016, Microsoft XPS Document Writer, etc”。 Get-Printer | Select Name 会这样做。

以上是关于如何通过 PowerShell 将“设备和打印机”中的对象查询到数组中的主要内容,如果未能解决你的问题,请参考以下文章

[Q]如何设置pdfFactory打印机纸张方向为横向

如何在windows7/10上安装odoo

打印机取消双面打印

并口转USB打印机无法打印 打印已经识别

epsonl4158怎么无线连接电脑打印

Win10 添加虚拟打印机