2013-08-23 158 views
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 
+0

什麼是您的域和森林功能級別? – Colyn1337

+0

Domain-US-City-Computers這部分工作正常,它返回計算機名稱和上次登錄日期罰款。只需將EmployeeName列作爲所有{} – user1342164

+0

當我調試並將鼠標懸停在其上時,顯示的員工姓名並未顯示在輸出中 – user1342164

回答

0

當您在調試器中查看它時,是否嘗試將該字段傳送給Get-Member?我懷疑這是Format-Table沒有展開的數組,但是當你將鼠標移到它上面時,調試器能夠展開。您正在將$ Computers定義爲一個數組。也許你只關心數組中的第一個元素,並且可以將'Employee_Name'定義爲數組的第一個元素而不是整個數組(可能只有一個元素)。