如何使用Powershell中的列表向System.Object添加另一列?

如何使用Powershell中的列表向System.Object添加另一列?,object,powershell-3.0,Object,Powershell 3.0,我正在编写一个脚本,通过powershell查询active directory,并在“描述”字段中提取所有包含用户名的计算机,然后仅使用过去14天内最后登录的计算机筛选该列表 这就是我到目前为止所做的: $queryAD = Get-ADComputer -SearchBase 'OU=West Division,DC=cable,DC=comcast,DC=com' -Properties Name, Description -Filter {(Name -like "WA*") -and

我正在编写一个脚本,通过powershell查询active directory,并在“描述”字段中提取所有包含用户名的计算机,然后仅使用过去14天内最后登录的计算机筛选该列表

这就是我到目前为止所做的:

$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
正在返回两列,标题为Name和Description。我需要添加第三个标题,名为Last Logon Date,并在
$lastLogon
中包含该列表。请告知。

您可以将值分配给对象数组,以使输出更清晰(如果此方法为您提供所需的数据),如下所示:

在这种情况下,
$computer\u list
将包含您在整洁对象中收集的所有信息

…但这种方法似乎过于复杂了。查看马特·沃格特(Matt Vogt)的博客,寻找一种更好的方式来查询广告中的旧机器

$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
}