在以前的 Windows 版本中,可以从设备管理器打印信息,但在 Windows 7 中似乎不再能够执行此操作。
我正在寻找一个 Powershell 脚本,该脚本可以将设备管理器中出现的所有设备导出到文本文件,并且如果可能的话,可以选择在树状设备管理器类型的视图中创建它。
这在很多情况下都会非常有用,但从我所做的研究来看,我还没有发现类似的东西。
答案1
Powershell 脚本用于导出设备管理器中的所有设备
我正在寻找一个 Powershell 脚本,该脚本可以将设备管理器中出现的所有设备导出到文本文件,并且如果可能的话,可以选择在树状设备管理器类型的视图中创建它。
我刚刚在 Windows 7 上测试了这一点,从我所知来看,它似乎运行良好,所以这里有一个 PowerShell 模块,您可以导入它,然后使用它来获取您需要的设备详细信息以及一些其他信息。
下面的示例语法也可用于放入您请求的文本文件中。只需插入您的语法,然后将命令放在| Out-File -Append -Force "C:\path\FileListName.txt"
其末尾,并附上文件位置,以便放入文本文件中以供以后查看(http://ss64.com/ps/out-file.html)。
例子
Get-Device | Sort-Object -Property Name | ft Name, DriverVersion, DriverProvider, IsPresent, HasProblem -AutoSize | Out-File -Append -Force "C:\path\FileListName.txt"
导入模块注意事项
如果您在导入时遇到问题,只需下载 ZIP 文件,将Release
其中的文件夹提取或复制到您的桌面临时,然后使用显式路径导入语法指向 psd1 文件:
Import-Module C:\Users\<username>\Desktop\Release\DeviceManagement.psd1 –Verbose
来源链接:
- https://gallery.technet.microsoft.com/Device-Management-7fad2388
- http://blogs.technet.com/b/wincat/archive/2012/09/06/device-management-powershell-cmdlets-sample-an-introduction.aspx
下载并使用设备管理 PowerShell 命令
设备管理 PowerShell cmdlet 可从以下位置获取: http://gallery.technet.microsoft.com/Device-Management-7fad2388
要下载,请点击上面的链接并点击“下载”按钮。将 .zip 文件的内容保存并解压到您选择的文件夹中。
下一步是导入模块并开始使用 cmdlet!为此,启动 PowerShell 实例并按照以下步骤操作:
导入 Cmdlet 模块:
导入模块 .\PSCmdlet.psd1 –详细
列出设备
系统上存在的所有设备
获取设备 | 排序对象 - 属性名称 | ft 名称、DriverVersion、DriverProvider、IsPresent、HasProblem -AutoSize
“隐藏”设备
获取设备 -ControlOptions DIGCF_ALLCLASSES | 排序对象 -属性名称 | 位置对象 -属性 IsPresent -eq $false | ft 名称、DriverVersion、DriverProvider、IsPresent、HasProblem -AutoSize
已禁用的设备
获取设备 | 排序对象 - 属性名称 | 位置对象 - 属性 ConfigurationFlags -Like '已禁用' | ft 名称,InstanceId -AutoSize
答案2
你仍然可以从 MsInfo32 打印/导出:
Windows 7 中没有像 Windows XP 中那样的打印设备管理器报告选项。但是,您可以尝试通过进入系统属性来打印设备资源。以下是进入系统属性的步骤。
单击开始,输入msinfo32在搜索框中。
在系统属性窗口中,它将列出以下选项。
- 硬件资源。
- 成分。
- 软件环境。
- 选择您想要打印的选项。
现在,选择文件菜单栏中的选项,然后点击出口 然后给出文件名并选择它。
- 尝试打开该文件然后打印它。
您还可以使用此 PowerShell 在线程序列出所有设备(但没有树):
Get-WmiObject Win32_PNPEntity | Select Name, DeviceID
示例输出:
Name DeviceID
---- --------
Generic PnP Monitor DISPLAY\NEC66C0\5&3A115792&2&UID257
Motherboard resources ACPI\PNP0C02\1
Motherboard resources ACPI\PNP0C02\2
Intel(R) processor DRAM Controller - 0044 PCI\VEN_8086&DEV_0044&SUBSYS_1C771043&REV_18\3&11583659&0&00
Numeric data processor ACPI\PNP0C04\4&142DD991&0
Microsoft ACPI-Compliant Control Method Battery ACPI\PNP0C0A\0
High Definition Audio Bus PCI\VEN_1002&DEV_AA68&SUBSYS_AA681043&REV_00\4&179FD7D4&0&0108
Generic volume STORAGE\VOLUME\{5200DD0F-4FFD-11E5-8381-806E6F6E6963}#0000001900100000
Root Print Queue SWD\PRINTENUM\PRINTQUEUES
Volume Manager ROOT\VOLMGR\0000
Logicool USB (RX250) Optical Mouse USB\VID_046D&PID_C050\6&2582BEDF&0&2
Intel(R) 5 Series/3400 Series Chipset Family PCI Express Root Port 1 - 3B42 PCI\VEN_8086&DEV_3B42&SUBSYS_1C771043&REV_06\3&11583659&0&E0
答案3
对于 Windows10,请执行以下操作:
Invoke-Command -ComputerName localhost { Get-WmiObject Win32_PNPEntity | Where { $_.PNPClass -notin "System","Net","Processor","SoftwareDevice","AudioEndpoint","BluetoothVirtual","Battery","Media","Volume","Modem","Camera","VolumeSnapshot","DiskDrive","Computer","HIDClass"}} | Sort-Object -Property PNPClass | Format-Table Name, Manufacturer, PNPClass, Status
完整属性列表:https://docs.microsoft.com/en-us/windows/desktop/cimwin32prov/win32-pnpentity