Active Directory OU ユーザーごとに PowerShell の foreach ループを修正するにはどうすればよいですか?

Active Directory OU ユーザーごとに PowerShell の foreach ループを修正するにはどうすればよいですか?

ゴール: OU 内のすべてのユーザーに対して何らかのコード (この場合は x を印刷するだけ) を実行するための for または foreach ループを作成します。ActiveDirectory モジュールを備えた PowerShell 2.0 を使用しています。

これまでのところ: これが私の場合です (下記参照)。各ユーザーの X が出力されるだけです。しかし、思ったようには動作しません。代わりに、各行に対して実行されているのではないかと思います。そのため、'name'、'----'、'test1'、'test2'、スペース、スペースの 6 つの X が表示されます。

$pool = Get-ADUser -Filter * -SearchScope Subtree -SearchBase "OU=Test,OU=Users,OU=jack,DC=Corp,DC=jill,DC=com" -Properties name | FT name
foreach ($user in $pool )
{ write-host "x"}
$pool

結果スペースはピリオド (.) で表されます。

x
x
x
x
x
x


name                        
----                      
test1                  
test2
.
.

なぜそうなるのかは分かりません。これに対処するより良い方法や手段があれば、ぜひ教えてください。

答え1

には、最初の行の最後のステップで$poolある の出力が含まれます。コマンドレットは、画面に値を表示するために使用されます。ループにフォーマットされたテーブルを入力することは、ほとんど望ましくありません。Format-Table nameFormat-*foreach

$pool = Get-ADUser -Filter * -SearchScope Subtree -SearchBase "OU=Test,OU=Users,OU=jack,DC=Corp,DC=jill,DC=com"
foreach ($user in $pool) {
  Write-Host "x"
}

# And if you really want to see an `ft $pool`:
$pool | Format-Table name

関連情報