2015-03-30 2 views
1

Я пытаюсь получить список информации на жестком диске. На данный момент мне нужно только, чтобы в списке отображалась модель жесткого диска, содержащегося на каждом компьютере.Список информации о жестких дисках на удаленных компьютерах в домене

У меня есть ниже

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-устройства и т. д.?

Цените любые мысли/советы.

Большое спасибо, Chris

+0

см. [Psexec] (https://technet.microsoft.com/en-us/sysinternals/bb897553.aspx?f=255&MSPPError=-2147217396) и [invoke-command] (http://ss64.com/ ps/invoke-command.html) вы можете использовать powershell 'invoke-command' и использовать конвейер и' out-file c: \ example.csv' – powershell

ответ

4

Просто выбрать свойство 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-Гбайт USB 3 FlashDrive. Вы упомянули желающих включить только Неподвижные диски, а не USB, так, чтобы сделать это, мы просто добавить в ИНЕКЕ, как это:

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 

Бонусные баллы, если вы хотите, чтобы показать размер диска в ГБ, изменить оператор выбора для этого, который использует вычисляемое свойство, чтобы сделать новый столбец под названием Размер (ГБ) и заполнить его с $ _ Размер собственности, деленной на 1 Гб в целое число (целое число) форма:.

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" 

Ahh, сила PowerShell.

+0

спасибо за информацию и информацию, которую вы указали. Это то, что я искал и хорошо работает, форматирование данных упрощает чтение. Оцените усилия, к которым вы пошли. –

Смежные вопросы