如何使用Powershell中的列表向System.Object添加另一列?
我正在编写一个脚本,通过powershell查询active directory,并在“描述”字段中提取所有包含用户名的计算机,然后仅使用过去14天内最后登录的计算机筛选该列表 这就是我到目前为止所做的:如何使用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
$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
}