Para implementar nuevas máquinas virtuales en VMWare, se suelen utilizar plantillas de VM. Una plantilla de VM de VMWare es una copia de la máquina virtual de referencia con los ajustes configurados, el software instalado y las actualizaciones de seguridad. Un administrador debe actualizar periódicamente 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 de la aplicación, 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 las actualizaciones de Windows aprobadas mediante WSUS, actualiza el software necesario;
- Una vez que se han instalado las actualizaciones, la máquina virtual se reinicia, luego se apaga y se convierte de nuevo 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.
Puede utilizar PowerCLI para instalar actualizaciones en una máquina virtual de Windows. Suponemos que las herramientas VMWare, Versión de PowerShell 4 (o más reciente) y el módulo PSWindowsUpdate están instalados en la plantilla de la máquina virtual. La ejecución de scripts de PowerShell debe estar permitida en el sistema operativo invitado por la política de ejecución de scripts.
El siguiente script de PowerCLI le ayudará a convertir automáticamente una plantilla VMWare en una máquina virtual 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:ScriptsVMWarevm_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:tempUpdate.log)
Invoke-VMScript -ScriptType PowerShell -ScriptText "Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot" -VM $TeplateVMName -GuestCredential $Cred | Out-file -Filepath C:tempUpdate.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:$false
Puede agregar este script de PowerShell al Programador de tareas para instalar automáticamente actualizaciones en 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 las últimas actualizaciones de seguridad de Microsoft están instaladas en ella.





