Surgió la necesidad de aplicar un GPO nuevo, el cual debía ubicarse justamente en los mismos lugares que otro ya existente.
Pensando que (en forma simplificada) los GPOs en AD simplemente tienen punteros que utilizan el atributo GPLink (http://msdn.microsoft.com/en-us/library/cc219956.aspx) pensé esto sería sencillo, hacer un barrido de los objetos que contuviesen los valores adecuados en dicho atributo y utilizarlo como insumo para el siguiente comando que agregaría el nuevo GPO al atributo, más por la naturaleza del atributo no me fue tan fácil.

Luego de varios intentos tuve que recurrir a PowerShell, lo cual no es mi fuerte pero si el de unos amigos

(Get-ADObject -LDAPFilter “(gplink=*{GPO1 | Select-Object Name -ExpandProperty DistinguishedName) | ForEach-Object {New-GPLink -GUID GPO2 -Target $_}
Explicado es algo como, busque el objeto de AD, donde el GPLink contiene GPO1 | almacene su distinguishedName | ahora por cada uno de estos enlazo la nueva política.
(Get-ADObject -LDAPFilter “(gplink=*{6AC1786C-*)” | Select-Object Name -ExpandProperty DistinguishedName) | ForEach-Object {New-GPLink -GUID AE154AC3-B643-4E10-950E-26404961A2A5 -Target $_}
Nótese que acá estoy identificando los objetos por el GUID. Este lo obtiene fácilmente desde el GPMC en la etiqueta Details de cada GPO involucrada tal como muestra la siguiente imagen.

Hasta pronto!
No comments:
Post a Comment