2017-11-03 6 views
0

사용자 (이름 및 성), 이메일 주소 및 컨테이너 목록을 가져 오려고하지만 불행히도 필요한 데이터가 나타나지 않습니다. 컨테이너 이름이 아닌 정보의 대부분을 얻을 수 있습니다.사용자 정보 가져 오기 AD

Get-ADUser -SearchBase 'DC=DOMAINNAME,DC=COM' -Filter {(mail -ne "null") -and (Enabled -eq "true")} -Properties emailAddress | 
    Select givenName,surName,OU,emailAddress | 
    Format-Table -AutoSize | 
    Out-File 'C:\Users\username\Desktop\Lists\Users_List.txt' 

답변

2

당신은 속성 DistinguishedName을 찾고 있었으나 결국 OU를 얻을에 일부 서식을해야 할 것입니다. Get-ADUser | Get-Member을 실행하면 OU라는 속성이 없음을 알 수 있습니다. Understanding PowerShell Custom Properties with the Select-Object cmdlet

+0

"DistinguishedName"사용에 대한 조언을 보내 주셔서 감사합니다. 필요로하는 정보를 찾을 수 있습니다. 그러나 원하는 것보다 더 많은 정보가 필요하므로 필자가 필요로하는 정보로 필터링해야합니다. 그러나 이제 새로운 문제가 생겼습니다. 정보를 텍스트 파일로 내보내므로 한 줄에 글자 수 제한이 있습니다. 이 문제를 해결할 수있는 방법이 있습니까? CSV 파일로 내보내는 것을 선호하지만 제대로 작동하지 않습니다. – David

+0

위의 스크립트를 포맷 했으므로 결과는 다음과 같습니다. "givenName", "surName", "OU", "emailAddress" "Alan", "Adams",, " [email protected] " 그러나"DistinguishedName "을 포함하도록 코드를 수정하면 정보를 검색합니다. "CN = Info"및 "DC = info"와 같은 불필요한 정보를 필터링하는 방법이 있습니까? – David

+0

당신을 위해 스크립트 작성을 드릴 다운하기 시작했습니다. 'Export-Csv' 함수는 매번 작동 할 때마다'Format-Table'과'Out-File' 대신에 사용할 수 있습니다. 그러면 정보가 .csv 형식으로 변환됩니다. OU의 이름을 원한다면 정규 표현식으로 첫 번째 OU 이름을 선택하거나 표현식에서 사용한 문자열을 가져 와서 Get-ADOrganizationalUnit으로 전달하고 그 Name 속성을 선택할 수 있습니다. –

0

Get-ADUser ` 
    -SearchBase 'DC=DOMAINNAME,DC=COM' ` 
    -Filter {(mail -ne "null") -and (Enabled -eq "true")} ` 
    -Properties emailAddress ` 
| Select givenName,surName,@{Name='OU';Expression={$_.DistingishedName.Replace("CN=$($_.Name),","")}},emailAddress ` 
| Format-Table -AutoSize ` 
| Out-File 'C:\Users\username\Desktop\Lists\Users_List.txt' 

제 나는 거짓 $ 및 $ true로 메일 필터를 변경합니다. 내 답변을 테스트하기 위해 AD 모듈이 설치된 컴퓨터가 없습니다. 그렇지 않으면 더 많이 제공했을 것입니다.