список жестких дисков в ячейке Excel - PullRequest
0 голосов
/ 01 июня 2011

Я пытаюсь создать скрипт для инвентаризации оборудования моих компьютеров и экспортировать его в Excel.

У меня проблемы с отображением жесткого диска.

Предположим, у одного ПК есть два раздела: C с 100 ГБ и E с 200 ГБ. Я бы хотел таким образом поместить диски в одну ячейку с возвратом каретки.

C: 100 GB
E: 200 GB

Если я хочу создать файл Excel, я могу сделать что-то вроде этого

$a = New-Object -comobject Excel.Application
$a.Visible = $True
$b = $a.Workbooks.Add()
$c = $b.Worksheets.Item(1)
$c.Cells.Item(1,1) = "A value in cell A1."

и я знаю, что могу запросить wmi для вывода списка жестких дисков:

gwmi win32_logicaldisk | ? {$_.drivetype -eq 3} | select deviceid,@{Label="Disk GB"; Expression={[math]::truncate($_.Size / 1GB)}}

но я не знаю, как получить желаемый результат. Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 01 июня 2011

Как это работает?

$a = New-Object -comobject Excel.Application
$a.Visible = $True
$b = $a.Workbooks.Add()
$c = $b.Worksheets.Item(1)
$label=gwmi win32_logicaldisk | select deviceid,@{Label="Disk GB";  Expression={"$([math]::truncate($_.Size / 1GB)) GB"}} | ft -auto -HideTableHeaders | out-string
$c.Cells.Item(1,1) = $label
0 голосов
/ 01 июня 2011

Вы можете выполнить итерацию по возвращенным дискам из запроса WMI и добавить идентификатор устройства и результаты «Гб диска» в строковое значение. Затем вы можете записать полученное строковое значение в ячейку Excel. Один из способов сделать это будет выглядеть так:

$a = New-Object -comobject Excel.Application
$a.Visible = $True
$b = $a.Workbooks.Add()
$c = $b.Worksheets.Item(1)
$outputstring = ""
foreach ($drive in $driveinfo) {
    $outputstring += "$($drive.deviceid)  $($drive."Disk GB") GB`n"
}
$c.cells.item(1,1) = $outputstring
0 голосов
/ 01 июня 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...