September 19, 2014

1 GPO + muchos gpLink

Sabemos que las mejores prácticas y sugerencias del fabricante no siempre son acatadas, hoy por ejemplo miraba un ambiente donde hay N bloqueos de herencias de políticas en una estructura ligeramente compleja de OUs.

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.

gpo00

Luego de varios intentos tuve que recurrir a PowerShell, lo cual no es mi fuerte pero si el de unos amigos :) En fin, la siguiente orden busca los OUs donde el GPO1 está aplicado y ese insumo lo utiliza para ligar el GPO2.

(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.

gpo01

Hasta pronto!

No comments:

Post a Comment