Una de las cosas por las que me gusta el nuevo Windows Server 2012 es por esta. Muchos administradores de sistemas Windows como yo se acuerdan de las GPO y la actualización de las mismas en los equipos cliente, forzándola con un gpupdate /force, seguro que alguno se acuerda de alguien cuando lo digo.
Bien, pues en el nuevo WS2012 podemos hacerlo sin levantarnos de la silla y directamente desde la consola de Administración de directivas de grupo o por Powershell.
Si lo hacemos desde la consola tenemos que tener en cuenta que no nos lo deja hacer a un equipo individual sino sobre una OU y o un subcontenedor. Otra consideración es que no vale para equipos anteriores a Windows Vista y Windows Server 2008.
Para ello creo lo único que tengo que hacer es desde la propia consola de Administración de directivas de grupo, hacer botón derecho sobre un contenedor y hacer click en Actualización de GPO
Despues de hacer clic nos sale un mensaje avisando de la cantidad de equipos que se van a actualizar
Cuando confirmas el sí, nos sale una pantalla confirmando la actualización e informando de que en los próximos 10 minutos se va a proceder a realizar la instalación y forzara a las maquinas a actualizarse.
Powershell
Si queremos utilizar powershell utilizaremos el comando Invoke-GpUpdate. Si lo utilizamos solo sería equivalente a un gpupdate, la única diferencia es que no es inmediato como el gpupdate, sino que tardara aproximadamente 10 minuntos.
Podemos utilizarlo con el parámetro –Computer por ejemplo Invoke-GpUpdate –Computer PCW7 nos permite pedir la actualización de un equipo remoto PCW7.
Con el parámetro –force forzamos la actualización del equipo y con –RandomDelayinMinutes definimos el intervalo de tiempo máximo en el que se va a ejecutar.
Ejemplo:
Invoke-GpUpdate –Computer PCW7 –RamdomDelayinMinutes 0 –Force
Este ejemplo fuerza la actualización inmediata del equipo PCW7
Si queremos actualizar toda una OU o contenedor, por ejemplo todos los equipos en el contenedor Computers seria:
Get-ADComputer –Filter * -Searchbase «CN=Computers,DC=Fabrikam,DC=local» | ForEach { Invoke-GpUpdate –Computer $_.name}