Actualización de plantillas de máquina virtual de Windows en VMWare con PowerShell
Para implementar nuevas máquinas virtuales en VMWare, normalmente se utilizan plantillas de VM. Una plantilla de máquina virtual de VMWare es una copia de máquina virtual de referencia con los ajustes configurados, el software instalado y las actualizaciones de seguridad. Un administrador debe actualizar regularmente la plantilla de VM para mantenerla actualizada: instale nuevas actualizaciones de seguridad de Windows (al menos una vez al mes), actualice el sistema y las aplicaciones, actualice las definiciones de antivirus, etc.
El proceso de actualización de una plantilla de VM en VMWare consta de las siguientes etapas:
Una plantilla de la Biblioteca de contenido se convierte en una máquina virtual.;
Después de iniciarlo, un administrador inicia sesión, instala actualizaciones de Windows aprobadas mediante WSUS, actualiza el software necesario;
Una vez instaladas las actualizaciones, la máquina virtual se reinicia, luego se apaga y se vuelve a convertir a la plantilla.
En este artículo, mostraremos cómo instalar actualizaciones de Windows en una plantilla de máquina virtual VMWare automáticamente sin hacer nada manualmente.
Para las máquinas virtuales de VMWare, no podrá usar directamente los métodos de integración de actualizaciones en una imagen de Windows que se usan para imágenes o distribuciones independientes.
Puede usar PowerCLI para instalar actualizaciones en una máquina virtual de Windows. Suponemos que las herramientas de VMWare, PowerShell versión 4 (o posterior) y el módulo PSWindowsUpdate están instalados en la plantilla de la máquina virtual. La política de ejecución de scripts debe permitir la ejecución de scripts de PowerShell en el sistema operativo invitado.
El siguiente script de PowerCLI lo ayudará a convertir automáticamente una plantilla de VMWare en una VM e instalar actualizaciones de seguridad de WSUS:
# Import the PowerCLI module
Import-Module VMware.VimAutomation.Core -ErrorAction SilentlyContinue
# Connect to vCenter
connect-viserver de-vcenter1
$TeplateVMName="Win2016StdTemplate"
# Convert a template to a VM
Set-Template -Template $TeplateVMName -ToVM -Confirm:$false -RunAsync
# Make a 60 seconds delay
Start-sleep -s 60
# Start the virtual machine
Start-VM -VM $TeplateVMName | Get-VMQuestion | Set-VMQuestion -DefaultOption -Confirm:$false
Start-sleep -s 120
# Get an administrator credentials from an encrypted file (if you do not want to keep the password in the PS script in clear text)
$adminname = "administrator"
$Pwd = Get-Content c:\Scripts\VMWare\vm_admin_passfile.txt | ConvertTo-SecureString $
cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $adminname, $Pwd
# Run the command to install all available updates in the guest OS using VMWare Tools (the update installation log is saved to a file: C:\temp\Update.log)Se supone que la VM está ubicada en una red virtual donde puede obtener una dirección IP de un servidor DHCP. La configuración de WSUS en una máquina virtual se almacena en el registro en lugar de implementarse a través de un GPO.
Invoke-VMScript -ScriptType PowerShell -ScriptText "Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot" -VM $TeplateVMName -GuestCredential $Cred | Out-file -Filepath C:\temp\Update.log -Append
Start-sleep -s 1800
# Update VMTools version
Update-Tools -VM $TeplateVMName -NoReboot
# Clean up the WinSxS component store and optimize the image with DISM
Invoke-VMScript -ScriptType PowerShell -ScriptText "Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase" -VM $TeplateVMName -GuestCredential $Cred
Start-sleep -s 1800
# Force restart the VM
Restart-VMGuest -VM $TeplateVMName -Confirm:$false
# Shut the VM down and convert it back to the template
Shutdown-VMGuest -VM $TeplateVMName -Confirm:$false -RunAsync
Start-sleep -s 180
Set-VM -VM $TeplateVMName -ToTemplate -Confirm:$falsePuede agregar este script de PowerShell al Programador de tareas para instalar automáticamente las actualizaciones de la plantilla una vez al mes, unos días después del martes de parches de Microsoft. Luego, si implementa una nueva máquina virtual desde una plantilla de VMWare, puede estar seguro de que tiene instaladas las últimas actualizaciones de seguridad de Microsoft.
