===== Actualizar estaciones usando PowerShell =====
==== Actualizar Windows ====
Lo primero es ejecutar powershell desde una consola administrador. Para lanzar powershell desde la línea de comandos como administrador
powershell Start-Process powershell -Verb runAs
=== Configurar el proxy si es necesario ===
Dentro de poweshell si usamos proxy debemos de especificar primero el mismo
netsh winhttp set proxy "miproxy:puerto"
o bien
netsh winhttp import proxy source=ie
== Otra forma de poner el proxy ==
$proxy = '172.19.254.2:8080'
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
[system.net.webrequest]::defaultwebproxy = new-object system.net.webproxy($proxy)
[system.net.webrequest]::defaultwebproxy.BypassProxyOnLocal = $true
También podemos añadirlo en nuestro perfil añadiendo las siguientes líneas al mismo, abrimos el perfil
notepad $PROFILE
Añadimos al PROFILE las siguientes líneas:
[system.net.webrequest]::defaultwebproxy = new-object system.net.webproxy('http://miproxy:mipuerto')
[system.net.webrequest]::defaultwebproxy.credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials
[system.net.webrequest]::defaultwebproxy.BypassProxyOnLocal = $true
=== Configurar para que se use TLS1.2 ===
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
=== Para quitarlo ===
netsh winhttp reset proxy
=== Comprobación ===
Para hacer una prueba y comprobar si tenemos acceso a internet
Invoke-WebRequest google.es
=== Instalar NuGet ===
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Como daba problemas al final a mi me ha funcionando con
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force -proxy 'http:\\172.19.254.2:8080'
Con Get-PackageProvider -ListAvailable podemos ver los paquetes que tenemos instalados
=== Registrar el repositorio PSGallery ===
Register-PSRepository -Name "PSGallery" –SourceLocation "https://www.powershellgallery.com/api/v2/" -InstallationPolicy Trusted
=== Instalar el módulo PSWindowsUpdate ===
Install-Module PSWindowsUpdate
Si te da error mirar https://www.sysadmit.com/2021/11/windows-powershell-error-instalar-nuget.html
== Importamos el módulo a la sesión actual ==
Import-Module PSWindowsUpdate
== error porque está deshabilitada la ejecución de scripts ==
Si al ejecutar algún comando nos da error de que no pudo cargarse es probable que tenga restringida la ejecución de scripts
Para saber que política se aplica en el equipo ejecutamos
Get-ExecutionPolicy
Para cambiar la política
Set-ExecutionPolicy -ExecutionPolicy
Por ejemplo
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
== Comandos del módulo ==
* Para saber todos los comandos del módulo ejecutar -> **Get-Command –Module PSWindowsUpdate**
* Ver las opciones configuradas->**Get-WUSettings**
* Ver las actualizaciones pendientes→ **Get-WindowsUpdate o Get-WUList**
* Ver la última vez que actualizó` (New-Object -com "Microsoft.Update.AutoUpdate").Results|fl`
* Instalar las actualizaciones → **Install-WindowsUpdate**
* Instalar y reinciar **Install-WindowsUpdate -AcceptAll -AutoReboot**
* Instalar un KB específico → **Get-WindowsUpdate -Install -KBArticleID 'KB4560960'**
=== Ver la fecha de la última actualización ===
(New-Object -com "Microsoft.Update.AutoUpdate").Results|fl
https://www.sysadmit.com/2019/03/windows-update-ver-fecha-powershell.html
=== Para saber si necesita reiniciar ===
Get-WURebootStatus
=== Historial de Actualizaciones ===
Get-WUHistory
Get-WUInstallerStatus
Para ver la versión del sistema operativo ejecutar systeminfo desde la línea de comandos
===== Referencias =====
* https://adamtheautomator.com/pswindowsupdate/
* http://woshub.com/pswindowsupdate-module/
* https://reparar.info/pswindowsupdate-administracion-de-actualizaciones-de-windows-desde-powershell/
* https://adamtheautomator.com/powershell-run-as-administrator/
* https://www.howtogeek.com/117192/how-to-run-powershell-commands-on-remote-computers/
* https://reparar.info/usar-powershell-detras-de-un-servidor-proxy/
* https://reparar.info/pswindowsupdate-administracion-de-actualizaciones-de-windows-desde-powershell/
* https://adamtheautomator.com/pswindowsupdate/
* http://woshub.com/pswindowsupdate-module/
* https://www.parallels.com/blogs/ras/powershell-windows-update/
* https://blog.velingeorgiev.com/install-powershell-5-nuget-sharepointpnppowershellonline-behind-proxy
* https://daveshap.github.io/DavidShapiroBlog/powershell/kb/2021/03/12/install-powershell-modules.html
* https://spaghettidba.com/2017/12/19/recovering-the-psgallery-repository-behind-a-corporate-proxy/
* https://docs.microsoft.com/es-es/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.2
* https://spaghettidba.com/2017/12/19/recovering-the-psgallery-repository-behind-a-corporate-proxy/