0

我正在使用下面的代码来获取 181 天前最后一次修改的计算机名称列表。我有一个包含 2 列(计算机名、用户名)的 .csv 文件有没有办法可以将下面代码的输出与 csv 文件中的计算机名列匹配并显示输出/匹配项?

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

1 回答 1

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
于 2013-08-22T19:13:55.283 回答