Pero en ciertas redes no hay configuada una estrategia de actualizaciones automaticas generalmente WSUS, o por la cantidad de actualizaciones pendientes y por motivos de algunas aplicaciones no es factible el despliegue masivo de todas las actualizaciones de una vez, por lo cual se genero un script de powershell hibrido (con algo de bat y el uso de psexec) para realizar esta actividad.
para ello también necesitamos:
- PSTOOLs de Sysinternals la cuales se descargan Aqui. lo descomprimimos en C: de modo que nos quede C:\PSTools y verificacamos que dentro de C:\PSTools\ se encuentre psexec.exe
- Parche de Windows para W7 32 bit windows6.1-kb4012212-x86_Wi7.msu el cual renombraremos al descargar para acortar un poco el nombre, yo lo renombre como w7-kb4012212-x86.msu (o cualquier parche que requieran ;))
- Se requiere un archivo de texto el cual llamaremos listado.txt en el cual colocaremos los nombres de los equipos a verificar uno debajo del otro: EJ.
equipo2
equipo3
etc....
Para ver el script que nos informe los equipos que faltan de esta actualizacion revisa el Post anterior
luego crearemos el archivo update.ps1 con el siguiente código:
$equipo = (Get-Content listado.txt)
#asignar la ruta compartida donde almacenamos el msu, con su respectivo nombre
$ruta = '\\nombre_servidor\ParchesMS17-010\Windows7\windows6.1-kb4012212-x86_Windows_7x86.msu'
foreach ($pc in $equipo){
CMD /C "sc \\$pc config wuauserv start= auto"
CMD /C "sc \\$pc start wuauserv"
if (Test-Path "\\$pc\c$"){
Write-Host "Processing $pc..."
# copiando
Copy-Item $ruta "\\$pc\c$"
& C:\PSTools\PsExec -s \\$pc wusa C:\windows6.1-kb4012212-x86_Windows_7x86.msu /quiet /norestart
# Eliminamos archivo msu local
Remove-Item "\\$pc\c$\windows6.1-kb4012212-x86_Windows_7x86.msu"
Start-Sleep -s 5
CMD /C "sc \\$pc config wuauserv start= disabled"
CMD /C "sc \\$pc stop wuauserv"
} else {
Write-Host "Sin acceso a la Unidad C"
}
}
#asignar la ruta compartida donde almacenamos el msu, con su respectivo nombre
$ruta = '\\nombre_servidor\ParchesMS17-010\Windows7\windows6.1-kb4012212-x86_Windows_7x86.msu'
foreach ($pc in $equipo){
CMD /C "sc \\$pc config wuauserv start= auto"
CMD /C "sc \\$pc start wuauserv"
if (Test-Path "\\$pc\c$"){
Write-Host "Processing $pc..."
# copiando
Copy-Item $ruta "\\$pc\c$"
& C:\PSTools\PsExec -s \\$pc wusa C:\windows6.1-kb4012212-x86_Windows_7x86.msu /quiet /norestart
# Eliminamos archivo msu local
Remove-Item "\\$pc\c$\windows6.1-kb4012212-x86_Windows_7x86.msu"
Start-Sleep -s 5
CMD /C "sc \\$pc config wuauserv start= disabled"
CMD /C "sc \\$pc stop wuauserv"
} else {
Write-Host "Sin acceso a la Unidad C"
}
}
los dos archivos se almacenaran en la misma ubicación del servidor desde el cual vamos a correr la actividad, una vez alli ejecutaremos una instancia de powershell como administrador y nos ubicaremos en la carpeta donde guardamos nuestros archivos.
Llego el momento de iniciar la tarea, Ejecutamos
.\update.ps1
Si todo salio bien nos puede arrojar dos errores:
error 3010 : actualizacion instalada REBOOT_REQUIRED:
Llego el momento de iniciar la tarea, Ejecutamos
.\update.ps1
Si todo salio bien nos puede arrojar dos errores:
error 3010 : actualizacion instalada REBOOT_REQUIRED:
error 2359302 actualizacio ya se encontraba instalada.
Espero a alguno le sea util este post
¡Hasta la proxima!
Si te fue útil la información "HAZ CLICK EN LA PUBLICIDAD DE GOOGLE"
visitando nuestros anunciantes, agradeces nuestro trabajo...
Espero a alguno le sea util este post
¡Hasta la proxima!
Si te fue útil la información "HAZ CLICK EN LA PUBLICIDAD DE GOOGLE"
visitando nuestros anunciantes, agradeces nuestro trabajo...