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á $pool
la 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 foreach
bucle.
$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