¿Cómo puedo cambiar el contenedor principal invertido en PowerShell?

¿Cómo puedo cambiar el contenedor principal invertido en PowerShell?

Tengo la necesidad de extraer a todos los usuarios de AD con toda la información sobre ellos agregando un campo con el campo "contenedor principal" invertido.

Por ejemplo:

Campo contenedor principal real: "OU=Users,OU=Area,DC=Company,DC=com"

Campo contenedor principal de formato necesario: Company.com\Area\Users

Y aquí el código que tengo ahora mismo.

Get-ADUser -Filter * -Properties * | select *,@{l='Parent';e={([adsi]"LDAP://$($_.DistinguishedName)").Parent}} | export-csv \\server\folder\usersADps.csv

Gracias

Respuesta1

Hace un tiempo escribí un módulo de PowerShell que encapsula la funcionalidad delNombreTraduciryNombre de rutaObjetos COM para un uso sencillo dentro de PowerShell:

https://github.com/Bill-Stewart/PowerShell-ADName

Con este módulo instalado, puedes escribir código como este:

Get-ADUser -LDAPFilter "(name=*)" |
  Select-Object @{Name = "Path"; Expression = {$_.DistinguishedName | Get-ADName -Format Parent | Convert-ADName Canonical}},
  Name

Este ejemplo se utiliza Select-Objectpara crear unpropiedad calculadaSe llama Pathasí a la ruta AD de cada objeto expresada en formato de nombre canónico.

Dentro del Expression =bloque de script (elbloque de scriptes el código entre llaves { }), este ejemplo utiliza:

  • $_.DistinguishedName- esta es DistinguishedNamepropiedad de cada usuario pasadoGet-ADUser
  • Get-ADName -Format Parent- la ubicación principal del nombre distinguido
  • Convert-ADName Canonical- la ruta principal en formato canónico

Este comando crea resultados con propiedades Pathy ; Namep.ej:

Path                     Name
-----------------------  ---------
myorg.local/Container A  Ken Dyer
myorg.local/Container B  Lynn Dyer

... etc.

información relacionada