2015-05-11 2 views
0

Я пытаюсь получить список букв дисков, чтобы отправлять в CSV через страницу не вниз,Экспортный Буквы дисков в Колонном

EX:
имя_системы, Drive1, Drive2, Drive3, Drive4, Drive5

СВР, C:, D:, E:, F:

не

имя_системы, DeviceId
УВО, C:
SVR, D:
SVR, E:
SVR, F:

код я собрал и работал раньше для других моих проектов

Get-WmiObject win32_logicaldisk -filter "drivetype = '3'" -computername $serverlist[$j] | Select systemname, deviceid 

Теперь есть еще до того, чтобы получить файл с компьютерами в нем и проверить, чтобы он был в сети, но это мясо, которое я считаю, должно быть способ сделать это, я просто не могу понять это. есть идеи?

Спасибо, Люк

Полный код

# Loop only executed when ping is successful 
    if (test-connection -computername $serverlist[$j] -count 1 -quiet) 
    { 
     $results = Get-WmiObject win32_logicaldisk -filter "drivetype = '3'" -computername $serverlist[$j] 
     "{0},{1}" -f $serverlist[$j], $results.deviceid -join "," | Add-Content c:\scripts\file.csv 
     for ($k = 0; $k -lt $tempvar.count; $k++) 
     { 
      $tempoutput = $tempvar[$k] 

      # Setup line to be written to file 

      $exporttofile = $tempoutput.systemname + "," + $tempoutput.deviceid 

      # Write to log, UTF8 encoding for .csv 
      $exporttofile | out-file $logfile -append -encoding utf8 
     } 
    } 

ответ

0

Если нет больше этого кода простой ответ, как представляется, просто использовать -join в сочетании с чем-то вроде Add-Content, чтобы установить линию. Очевидно, вы имеете это в какой-то структуре цикла, которая здесь не должна быть затронута.

$results = Get-WmiObject win32_logicaldisk -filter "drivetype = '3'" -computername $serverlist[$j] 
"{0},{1}" -f $serverlist[$j],($results.deviceid -join ",") | Add-Content c:\temp\file.csv 

Использование оператора формата мы строим линию с именем сервера и добавляемых запятыми строки диска идентификаторы

+0

Это не будет работать, потому что есть уже фильтр в этой команде. – Luke

+0

@ Luke Не уверен, что вы имеете в виду ... кроме «Add-Content» - лучший выбор. – Matt

+0

Когда я запустил ваш код, я получил ошибку: «Get-WmiObject: невозможно связать параметр, потому что параметр« Фильтр »указан более одного раза». – Luke