列出域中远程计算机上的硬盘信息

时间:2015-03-30 17:17:34

标签: powershell powershell-v3.0

我正在尝试获取硬盘信息列表。目前我只希望列表显示每台计算机包含的硬盘型号。

我有以下

Get-WMIObject win32_diskdrive -computer (Get-Content C:\Temp\DiskDrives\Computers.txt) | Select model | Export- CSV "C:\Temp\DiskDrives\Machines.csv" 

computers.txt文件包含代码经过的计算机列表。上面的工作到一定程度,它将列出它可以为一台机器找到的驱动器,但csv文件格式不太好。

可以将csv格式化为包含txt文件中的计算机名吗?还要只选择硬盘而不是usb,sd设备等?

欣赏任何想法/建议。

非常感谢, 克里斯

1 个答案:

答案 0 :(得分:5)

也可以选择SystemName属性,你会得到这样的结果。

Get-WMIObject win32_diskdrive -computer (Get-Content C:\Temp\DiskDrives\Computers.txt) | `
  Select SystemName,model 

>SystemName Model                              Size(GB)
---------- -----                              --------
BEHEMOTH   OCZ-VERTEX PLUS R2                       58
BEHEMOTH   JetFlash Transcend 32GB USB Device       29
BEHEMOTH   INTEL SSDSC2CT180A3                     168
BEHEMOTH   SAMSUNG HD103SJ                         932
BEHEMOTH   OCZ-VERTEX                               60
BEHEMOTH   ST3000DM001-1CH166                     2795
BEHEMOTH   OCZ-VERTEX PLUS R2                       58
BEHEMOTH   JetFlash Transcend 32GB USB Device       29
BEHEMOTH   INTEL SSDSC2CT180A3                     168
BEHEMOTH   SAMSUNG HD103SJ                         932
BEHEMOTH   OCZ-VERTEX                               60
BEHEMOTH   ST3000DM001-1CH166                     2795

只要对多台计算机运行WMI查询,您也可以获得SystemName参数,这样可以轻松实现!

请注意,在上面的结果中,我有一个名为Transcend的小驱动器,它是一个32 GB的USB 3 FlashDrive。你提到想要只包括固定磁盘,而不是USB,所以我们只需添加一个Where语句,如下所示:

PS C:\> Get-WMIObject win32_diskdrive -ComputerName behemoth,localhost | 
Where-Object MediaType -eq 'Fixed hard disk media' | Select SystemName,Model

>SystemName Model               Size(GB)
---------- -----               --------
BEHEMOTH   OCZ-VERTEX PLUS R2        58
BEHEMOTH   INTEL SSDSC2CT180A3      168
BEHEMOTH   SAMSUNG HD103SJ          932
BEHEMOTH   OCZ-VERTEX                60
BEHEMOTH   ST3000DM001-1CH166      2795
BEHEMOTH   OCZ-VERTEX PLUS R2        58
BEHEMOTH   INTEL SSDSC2CT180A3      168
BEHEMOTH   SAMSUNG HD103SJ          932
BEHEMOTH   OCZ-VERTEX                60
BEHEMOTH   ST3000DM001-1CH166      2795

奖励点,如果要以GB显示磁盘大小,请将select语句更改为this,它使用计算属性创建一个名为Size(GB)的新列,并使用$ _填充它。属性除以1GB整数(整数)形式:

Select SystemName,Model,@{Name='Size(GB)';Exp={$_.Size /1gb -as [int]}}`

已完成单行

只需将您的Export-CSV添加到管道的末尾即可完成 - 像这样的衬里,它可以给你你想要的结果:

Get-WMIObject win32_diskdrive -computer (Get-Content C:\Temp\DiskDrives\Computers.txt) | 
Where-Object MediaType -eq 'Fixed hard disk media' | 
Select SystemName,Model,@{Name='Size(GB)';Exp={$_.Size /1gb -as [int]}} |
Export- CSV "C:\Temp\DiskDrives\Machines.csv" 

啊,PowerShell的力量。