¿Cómo puedo corregir mi bucle foreach en powershell para cada usuario de unidad organizativa de Active Directory?

¿Cómo puedo corregir mi bucle foreach en powershell para cada usuario de unidad organizativa de Active Directory?

Meta: cree un bucle for o foreach para ejecutar algún código (en este caso, simplemente imprima x) para cada usuario en una unidad organizativa. Estoy usando powershell 2.0, con módulo ActiveDirectory.

Hasta ahora: Esto es lo que tengo (ver más abajo). Simplemente imprime las X para cada usuario. Pero no funciona como quiero; en cambio, creo que puede estar haciéndolo para cada línea. Entonces obtengo 6 X para 'nombre', '----', 'prueba1', 'prueba2', ESPACIO, ESPACIO.

$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

Resultado, el ESPACIO estará representado por un punto (.):

x
x
x
x
x
x


name                        
----                      
test1                  
test2
.
.

No estoy seguro de por qué hace esto. Si tiene un método o una forma mejor de manejar esto, estaré encantado de escucharlo.

Respuesta1

Contendrá $poolla salida de Format-Table name, el último paso de la primera línea. Los Format-*cmdlets se utilizan para mostrar valores en la pantalla. Es casi seguro que no querrás introducir una tabla formateada en tu foreachbucle.

$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

información relacionada