![¿Cómo puedo cambiar el contenedor principal invertido en PowerShell?](https://rvso.com/image/770129/%C2%BFC%C3%B3mo%20puedo%20cambiar%20el%20contenedor%20principal%20invertido%20en%20PowerShell%3F.png)
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-Object
para crear unpropiedad calculadaSe llama Path
así 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 esDistinguishedName
propiedad de cada usuario pasadoGet-ADUser
Get-ADName -Format Parent
- la ubicación principal del nombre distinguidoConvert-ADName Canonical
- la ruta principal en formato canónico
Este comando crea resultados con propiedades Path
y ; Name
p.ej:
Path Name
----------------------- ---------
myorg.local/Container A Ken Dyer
myorg.local/Container B Lynn Dyer
... etc.