2014-12-18 2 views
2

그림이없는 AD 사용자의 목록을 얻으려고합니다. QBC.CAN 도메인에 있으며 KOBAL 도메인에서 정보를 얻으려고합니다. KOBAL 도메인은 KOBAL.COM과 유사합니다. NORTHWEST라고하는 영업 및 하위 OU라는 OU가 있습니다.그림이없는 AD 사용자를 얻는 방법

내 직업은 이름, 직위, 이메일, 그림이없는 사용자 목록을 얻는 것입니다. thumbnailPhoto는 LDAP 표시 이름입니다. 나는 거의 쿼리를 시도하지 않았지만 그것이 내가 필요로하는 것을주지 않고 에러를 계속 내고있다.

Get-ADUser -Filter * -Server "ADCP12WSDC54X01.KOBAL.COM" -properties thumbnailPhoto | ? {!$_.thumbnailPhoto} | select Name 

이 코드는 작동하지만 전체 목록이 필요하지 않습니다. OU = 판매, OU = NORTHWEST 만 필요합니다. 내가 다음에 스크립트를 변경하면 나는 여기 내가 사용하는 것이 무엇 오류

Get-ADUser -Filter * -SearchBase "OU=NORTHWEST, OU=SALES ,DC=KOBAL,DC=COM" -properties thumbnailPhoto | ? {!$_.thumbnailPhoto} | select Name 

Get-ADUser : The supplied distinguishedName must belong to one of the following 
partition(s): 'DC=QBC,DC=CAN , CN=Configuration,DC=QBC,DC=CAN , cN=Schema,CN=Configuration,DC=QBC,DC=CAN , DC=DomainDnsZones,DC=QBC,DC=CAN, DC=ForestDnsZones,DC=QBC,DC=CAN'. 
+1

고유 이름은 매우 예민합니다. 그들은 물체 에서처럼 정확하게 * 나타낼 필요가 있습니다. 여기서는 아마도 "OU = NORTHWEST, OU = SALES, DC = KOBAL, DC = COM"이어야합니다. 또한'Where-Object'는'$ _. thumbnailPhoto -ne $ null'을 테스트해야합니다. –

+0

나는 당신의 제안을 시도했지만 지금은 kobal.com 도메인 컨트롤러로 전환하는 것처럼 보입니다. 내가 게시 한 것과 동일한 오류가 발생합니다. 다른 아이디어. -server 구문을 사용할 수는 있지만 -server 구문을 사용하면 정확한 OU를 전달하는 방법을 모르겠습니다. –

+0

QBC.can과 동일한 구문을 사용했으며 작동합니다. AD 사용자와 컴퓨터 UI를 사용하여 kobal.com으로 이동할 수 있습니다. –

답변

3

를 얻을 :

$SearchBase = 'OU=NORTHWEST,OU=SALES,DC=KOBAL,DC=COM'; 
$LdapServer = 'YourLDAPServerName'; 

$UsersWithoutPhotos = Get-ADUser -Filter 'thumbnailPhoto -notlike "*"' -SearchBase $SearchBase -SearchScope 'Subtree' -Server $LdapServer | Select-Object 'Name' 

여기 필터는 Where-Object에 배관에 대한 필요성을 제거합니다. 대상 OU 또는 그 아래에있는 thumbnailPhoto 특성이없는 사용자를 반환합니다. 더 이상 아무 것도 사용하지 않으므로 -Properties thumbnailPhoto이 필요하지 않으므로 모든 데이터를 반환하지 않습니다.


편집 추가 : 기본적으로

는, Get-ADUser에 의해 반환 된 전용 속성이 userPrincipalName 사용 distinguishedName을, 사용, givenName과, 이름, ObjectClass를, ObjectGUID의, SAMAccountName을, SID, 성입니다. 다른 것에 대한 액세스가 필요한 경우 해당 데이터를 가져 오는 명령에 대해서도 Get-ADUser과 함께 -Properties 매개 변수를 다시 포함해야합니다. Select-Object 명령은 표시하지 않으려는 필드를 제거합니다.

이 당신을 위해 작동합니다 :

$UsersWithoutPhotos = $UsersWithoutPhotos | Select-Object 'Name','title', 'displayName'; 

또는 필드하여 분류 :

$UsersWithoutPhotos = $UsersWithoutPhotos | Sort-Object 'displayName'; 

당신은 다음에 바로 필드를 원하는을 제한 할 수 있습니다

$UsersWithoutPhotos = Get-ADUser -Filter 'thumbnailPhoto -notlike "*"' -SearchBase $SearchBase -SearchScope 'Subtree' -Server $LdapServer -Properties 'title', 'displayName'; 

표시 :

$UsersWithoutPhotos | Format-Table -AutoSize; 

또는 : 물론

$UsersWithoutPhotos | Out-GridView; 

, 당신도 한 줄에 모든 것을 할, 그냥 배관을 유지할 수 있습니다.

+0

완벽하게 작동합니다. 더 나은 출력 형식을 지정하는 방법이 있습니까? 추가 사용자 속성을 출력에 추가 하시겠습니까? –

+2

물론, 모두 당신이 찾고있는 것에 달려 있습니다.내가'Select-Object 'Name'을 사용했습니다. 왜냐하면 그 이름은 당신이 사용했던 이름이기 때문입니다. –

+0

Select-Object 'Name', 'displayName', 'title'은 이름 만 부여합니다. 나는 쉼표와 같은 것을 인용하지 않고 노력했다. 내가 잘못하고있는 어떤 생각. –

관련 문제