모든 Active Directory OU 사용자에 대해 powershell에서 foreach 루프를 수정하려면 어떻게 해야 합니까?

모든 Active Directory OU 사용자에 대해 powershell에서 foreach 루프를 수정하려면 어떻게 해야 합니까?

목표: OU의 모든 사용자에 대해 일부 코드(이 경우 x만 인쇄)를 실행하는 for 또는 foreach 루프를 만듭니다. ActiveDirectory 모듈과 함께 powershell 2.0을 사용하고 있습니다.

지금까지: 이것이 제가 가지고 있는 것입니다(아래 참조). 모든 사용자에 대해 X를 인쇄합니다. 하지만 내가 원하는 대로 작동하지 않고 대신 모든 라인에 대해 작동할 수도 있다고 생각합니다. 그래서 'name', '----', 'test1', 'test2', SPACE, SPACE에 대해 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

결과, SPACE는 마침표(.)로 표시됩니다.

x
x
x
x
x
x


name                        
----                      
test1                  
test2
.
.

왜 이런 일이 발생하는지 잘 모르겠습니다. 이 문제를 처리하는 더 나은 방법이나 방법이 있으면 기꺼이 듣겠습니다.

답변1

첫 번째 줄의 마지막 단계인 $pool의 출력이 포함됩니다 . Format-Table namecmdlet Format-*은 화면에 값을 표시하는 데 사용됩니다. 서식이 지정된 테이블을 루프에 공급하고 싶지 않을 것입니다 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

관련 정보