我使用下面的代码获取181天前修改过它们的计算机名称列表。我有一个包含2列的.csv文件(ComputerName,UserName)有没有办法可以将下面代码的输出与csv文件中的computername列匹配并显示输出/匹配?
$Days = (Get-Date).AddDays(-181)
Get-ADComputer -Property Name,lastLogonDate -Filter {lastLogonDate -lt $Days} -Server DomainController -Searchbase "OU=US,DC=contoso,DC=net" | FT Name,lastLogonDate
答案 0 :(得分:1)
将... | FT Name,lastLogonDate
更改为... | select Name,lastLogonDate
。您仍然可以将结果通过管道传输到ft
以将其格式化为表格,但将选择与演示文稿分开可以更轻松地添加其他过滤器。
要仅显示CSV中具有匹配项的计算机,您可以执行以下操作:
$computers = Import-Csv 'your.csv' | % { $_.ComputerName }
Get-ADComputer -Property Name,lastLogonDate ... | select Name,lastLogonDate |
? { $computers -contains $_.Name } | ft
要包含CSV中的用户名,您可以执行以下操作:
$computers = @{}
Import-Csv 'your.csv' | % { $computers[$_.ComputerName] = $_.UserName }
Get-ADComputer -Property Name,lastLogonDate ... |
? { $computers.Keys -contains $_.Name } |
select Name,lastLogonDate,@{n='Username';e={$computers[$_.Name]}} | ft