2014-01-14 5 views
0

Я создаю скрипт для запроса активного каталога через powershell и вытащить все компьютеры, которые содержат имя пользователя в поле описания, а затем отфильтровать этот список только с последними компьютерами за последние 14 дней.Как добавить другой столбец в System.Object, используя список в Powershell?

Это то, что я до сих пор:

$queryAD = Get-ADComputer -SearchBase 'OU=West Division,DC=cable,DC=comcast,DC=com' -Properties Name, Description -Filter {(Name -like "WA*") -and (Description -like $wildCard)} | Select-Object Name, Description 
$lastLogon = $queryAD | Select-Object -ExpandProperty Description | %{$_.replace(("$NTname" + ";"),"").split(";")[0]} | %{get-date $_ -format d} 

Я хотел бы добавить в список генерируемый из $lastLogon в $queryAD, прямо сейчас $queryAD возвращает два столбца с заголовками Имя и Описание. Мне нужен третий заголовок, добавленный с именем Last Logon Date и содержащий список в $lastLogon. Пожалуйста, порекомендуйте.

ответ

0

Вы можете присвоить значения в массив объектов, чтобы сделать ваш выход очистителя (если этот метод предоставляет вам данные, которые вы хотите), как так:

$queryAD = Get-ADComputer -SearchBase 'OU=West Division,DC=cable,DC=comcast,DC=com' -Properties Name, Description -Filter {(Name -like "WA*") -and (Description -like $wildCard)} | Select-Object Name, Description 
$computer_list = @() 
foreach($computer in $queryAD) { 
    $computer_info = New-Object PSObject -Property @{ 
     Name = $computer.Name 
     Description = $computer.Description 
     LastLogonDate = $computer | Select-Object -ExpandProperty Description | %{$_.replace(("$NTname" + ";"),"").split(";")[0]} | %{get-date $_ -format d} 
    } 
    $computer_list += $computer_info 
} 

в этом случае $computer_list будет содержать все информация, которую вы собираете в аккуратных объектах.

... но этот способ похоже сложный. Посмотрите на запись в блоге this Мэттом Фогтом для лучшего способа запроса старых машин в AD.

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