如何為每個 Active Directory OU 使用者修正 powershell 中的 foreach 迴圈?

如何為每個 Active Directory OU 使用者修正 powershell 中的 foreach 迴圈?

目標:建立一個 for 或 foreach 迴圈來為 OU 中的每個使用者執行一些程式碼(在本例中,只需列印 x)。我使用 powershell 2.0,附有 ActiveDirectory 模組。

迄今: 這就是我所擁有的(見下文)。它只是為每個用戶列印出 X。但它並沒有按照我想要的方式工作,相反,我認為它可能對每一行都這樣做。所以我拿到 6 個 X,分別是「name」、「----」、「test1」、「test2」、SPACE、SPACE。

$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 namecmdletFormat-*用於在螢幕上顯示值。您幾乎肯定不想將格式化表提供給循環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

相關內容