Tenho a necessidade de extrair todos os usuários do AD com todas as informações sobre eles adicionando um campo com o campo "parent container" invertido
Por exemplo:
Campo real do contêiner pai: "OU=Usuários,OU=Área,DC=Empresa,DC=com"
Campo de contêiner pai de formato necessário: Company.com\Area\Users
E aqui o código que tenho agora
Get-ADUser -Filter * -Properties * | select *,@{l='Parent';e={([adsi]"LDAP://$($_.DistinguishedName)").Parent}} | export-csv \\server\folder\usersADps.csv
Obrigado
Responder1
Escrevi um módulo do PowerShell há algum tempo que encapsula a funcionalidade doNomeTraduzireNome do caminhoObjetos COM para fácil uso no PowerShell:
https://github.com/Bill-Stewart/PowerShell-ADName
Com este módulo instalado, você pode escrever código como este:
Get-ADUser -LDAPFilter "(name=*)" |
Select-Object @{Name = "Path"; Expression = {$_.DistinguishedName | Get-ADName -Format Parent | Convert-ADName Canonical}},
Name
Este exemplo usa Select-Object
para criar umpropriedade calculadachamado Path
, esse é o caminho AD de cada objeto expresso no formato de nome canônico.
Dentro do Expression =
bloco de script (obloco de scripté o código entre chaves { }
), este exemplo usa:
$_.DistinguishedName
- esta éDistinguishedName
propriedade de cada usuário passado deGet-ADUser
Get-ADName -Format Parent
- a localização pai do nome distintoConvert-ADName Canonical
- o caminho pai em formato canônico
Este comando cria saída com propriedades Path
e ; Name
por exemplo:
Path Name
----------------------- ---------
myorg.local/Container A Ken Dyer
myorg.local/Container B Lynn Dyer
... etc.