2015-09-04 3 views
2

Ребята У меня есть сценарий, который запрашивает службы на удаленных компьютерах. Он запускает 2 вложенных цикла foreach, 1 для списка компьютеров и внутренний для списка услуг. Я хочу захватить вывод процесса в двумерном массиве.Создание таблиц в Powershell

The desired output should be like this: 

Computer Service State StartupMode 
------------------------------------------- 
data   data  data  data 
data   data  data  data 
data   data  data  data 
data   data  data  data 

Я уже получил данные и представил его на консоли, но не смог сохранить его в многоколоночном массиве. Таблицы хэшей могут принимать только 2 столбца.

+0

Вы можете использовать 1D-массив, элементы которого представляют собой массивы размером 4 для хранения данных в вашем внутреннем контуре. См. Http://blogs.msdn.com/b/powershell/archive/2007/01/23/array-literals-in-powershell.aspx – GigaRohan

ответ

0

Попробуйте это один:

Использование WMI, потому что Get-Service Не имею StartupMode

$Array = @() 
$Computers = "Computer1","Computer2","Computer3" 

Foreach ($Computer in $Computers) 
{ 
$Services = Get-WmiObject Win32_Service -ComputerName $Computer | Select name,state,startmode 
    Foreach ($Service in $Services) 
    { 
    $Result = "" | Select Computer,Service,State,StartupMode 
    $Result.Computer = $Computer 
    $Result.Service = $Service.Name 
    $Result.State = $Service.State 
    $Result.StartupMode = $Service.StartMode 
    $Array += $Result 
    } 
} 

$Array 
+0

Спасибо AvShalon, вот что мне нужно. –

3

Вы можете создавать объекты со всеми этими свойствами самостоятельно делать что-то вроде следующего:

$yourData = @(
    @{Computer="Data";Service="Data";State="Data";StartupMode="Data"}, 
    @{Computer="Data";Service="Data";State="Data";StartupMode="Data"}, 
    @{Computer="Data";Service="Data";State="Data";StartupMode="Data"}, 
    @{Computer="Data";Service="Data";State="Data";StartupMode="Data"}) | % { New-Object object | Add-Member -NotePropertyMembers $_ -PassThru } 

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