これは私をナットにしています。for-EachObjectループ反復変数の問題
名前が「John」で始まるすべてのユーザーに対して、ユーザーのユーザー名と名前のテキストファイルを作成するスクリプトを作成します。ここで
はスクリプトです:
Get-ADUser -Filter {name -like "John*"} -Property Name, SamAccountName |
ForEach-Object {
Get-ADUser -Filter {name -eq $_.Name} |
Select-Object -Property Name, SamAccountName |
Out-File "c:\PS\$_.Name.txt"
}
これは動作しますが、アウトファイル(複数可)の名前は、ユーザー名ではなく、むしろそれはそののADsPathです。 CN=John Doe,OU=Users,DC=contoso,DC=local.Name.txt
何らかの理由により、$_.Name
がアウトファイルCMD-letで正しく解決されません。 $_
はオブジェクトを適切にリフレッシュしますが、は単なる文字列として解釈されます
WriteHost $_.Name
なぜですかOut-File "C:\PS\$_.Name.txt"
?
これはまさに私が望んでいた、ちょうどそれを行う方法を知らなかった:)ありがとう! –