2014-01-14 52 views
0

我正在製作一個腳本,通過powershell查詢活動目錄,並在說明字段中提取包含用戶名的所有計算機,然後僅使用最近14天內登錄的計算機過濾該列表。如何使用Powershell中的列表將另一列添加到System.Object中?

這是我到目前爲止有:

$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將包含所有的您收集的信息很整潔。

...但這種方法似乎過於複雜。查看Matt Vogt的this博客條目,以更好地查詢AD中的舊機器。

相關問題