我怎样才能纠正我的每个Active Directory OU用户PowerShell的foreach循环?

目标 :为OU中的每个用户创build一个for或foreach循环来执行一些代码(在这种情况下,只是打印x)。 我使用PowerShell 2.0和ActiveDirectory模块。

到目前为止 :这是我的(见下文)。 它只是打印出每个用户的X. 但它不是我想要的,而是我认为它可能是为了每一行。 所以我得到了6个X的'名字','—-','test1','test2',空格,空格。

$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 

结果 ,SPACE将以句点(。)表示:

 x x x x x x name ---- test1 test2 . . 

我不知道为什么这样做。 如果您有更好的方法来处理这个问题,我会很高兴听到这个消息。

您的$pool将包含Format-Table name的输出,这是第一行的最后一步。 Format-* cmdlet用于在屏幕上显示值。 你几乎肯定不想把一个格式化的表格喂给你的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