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 を配列として定義しています。たぶん、配列の最初の要素だけに関心があり、完全な配列 (おそらく 1 つの要素) ではなく、配列の最初の要素として 'Employee_Name' を定義できます。

于 2013-08-23T17:27:48.627 に答える