0

我正在使用下面的 powershell 命令读取 csv 文件并将计算机名称与上次登录日期为 181 天的员工姓名相匹配。出于某种原因,输出中的 Employee_Name 列仅在每一行上显示 {}。知道为什么它不返回员工姓名吗?

Import-Module ActiveDirectory
$Days = (Get-Date).AddDays(-181) 


$Computers = @{}
Import-CSV -Path c:\PS\ComputerNames.CSV | % { $Computers[$_.Computer_Name] = $_.Employee_Name }
Get-ADComputer -Property Name,lastLogonDate -Filter  {lastLogonDate -lt $Days} -Server servername -Searchbase "OU=US,DC=Domain,DC=net" | ? { $Computers.Keys -contains $_.Computer_Name } | select Name,lastLogonDate,@{n='Employee_Name';e={$Computers[$_.Computer_Name]}} | ft
4

1 回答 1

0

当您在调试器中查看它时,您是否尝试过将该字段传递给 Get-Member?我怀疑这是 Format-Table 没有扩展的数组,但是当您将鼠标悬停在它上面时调试器能够展开。您将 $Computers 定义为一个数组。也许您只关心数组中的第一个元素,您可以将“Employee_Name”定义为数组的第一个元素,而不是整个数组(可能只有一个元素)。

于 2013-08-23T17:27:48.627 回答