![Powershell에서 상위 컨테이너를 어떻게 바꿀 수 있습니까?](https://rvso.com/image/770129/Powershell%EC%97%90%EC%84%9C%20%EC%83%81%EC%9C%84%20%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88%EB%A5%BC%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EB%B0%94%EA%BF%80%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
"상위 컨테이너" 필드가 반전된 필드를 추가하여 AD의 모든 사용자에 대한 모든 정보를 추출해야 합니다.
예를 들어:
실제 상위 컨테이너 필드: "OU=Users,OU=Area,DC=Company,DC=com"
필요한 형식 상위 컨테이너 필드: Company.com\Area\Users
그리고 여기 내가 지금 가지고 있는 코드가 있습니다
Get-ADUser -Filter * -Properties * | select *,@{l='Parent';e={([adsi]"LDAP://$($_.DistinguishedName)").Parent}} | export-csv \\server\folder\usersADps.csv
감사해요
답변1
저는 얼마 전에 PowerShell 모듈의 기능을 캡슐화하는 PowerShell 모듈을 작성했습니다.이름번역그리고경로명PowerShell 내에서 쉽게 사용할 수 있는 COM 개체:
https://github.com/Bill-Stewart/PowerShell-ADName
이 모듈을 설치하면 다음과 같은 코드를 작성할 수 있습니다.
Get-ADUser -LDAPFilter "(name=*)" |
Select-Object @{Name = "Path"; Expression = {$_.DistinguishedName | Get-ADName -Format Parent | Convert-ADName Canonical}},
Name
이 예 Select-Object
에서는계산된 재산Path
이를 정식 이름 형식으로 표현된 각 개체의 AD 경로라고 합니다 .
스크립트 블록 내부 Expression =
(스크립트 블록는 중괄호 안의 코드입니다 { }
. 이 예제에서는 다음을 사용합니다.
$_.DistinguishedName
- 이것은DistinguishedName
전달된 각 사용자의 속성 입니다.Get-ADUser
Get-ADName -Format Parent
- 고유 이름의 상위 위치Convert-ADName Canonical
- 표준 형식의 상위 경로
이 명령은 Path
및 Name
속성을 사용하여 출력을 생성합니다. 예:
Path Name
----------------------- ---------
myorg.local/Container A Ken Dyer
myorg.local/Container B Lynn Dyer
... 등.