Crea sito

PowerShell: Aggiornamento dei modelli di macchine virtuali Windows su VMWare con PowerShell

5 / 100

Per distribuire nuove macchine virtuali in VMWare, vengono in genere utilizzati modelli di VM. Un modello VM VMWare è una copia della macchina virtuale di riferimento con le impostazioni configurate, il software installato e gli aggiornamenti di sicurezza. Un amministratore deve aggiornare regolarmente il modello VM per mantenerlo aggiornato: installa nuovi aggiornamenti di sicurezza di Windows (almeno una volta al mese), aggiorna il sistema e le app dell’applicazione, aggiorna le definizioni antivirus, ecc.

Il processo di aggiornamento di un template VM su VMWare consiste nelle seguenti fasi:

1 Un modello dalla libreria dei contenuti viene convertito in una macchina virtuale .;
2 Dopo averlo avviato, un amministratore accede, installa gli aggiornamenti di Windows approvati utilizzando WSUS , aggiorna il software richiesto;
3 Dopo aver installato gli aggiornamenti, la VM viene riavviata, quindi disattivata e riconvertita nel modello.

In questo articolo mostreremo come installare automaticamente gli aggiornamenti di Windows su un modello di macchina virtuale VMWare senza fare nulla manualmente.

Per le macchine virtuali VMWare, non sarai in grado di utilizzare direttamente i metodi di integrazione degli aggiornamenti in un’immagine Windows che vengono utilizzati per immagini o distribuzioni autonome.

È possibile utilizzare PowerCLI per installare gli aggiornamenti su una macchina virtuale Windows. Si presume che gli strumenti VMWare, PowerShell versione 4 (o più recente) e il modulo PSWindowsUpdate siano installati nel modello della macchina virtuale. L’esecuzione di script di PowerShell deve essere consentita nel sistema operativo guest dai criteri di esecuzione degli script .

Lo script PowerCLI di seguito ti aiuterà a convertire automaticamente un modello VMWare in una VM e installare gli aggiornamenti di sicurezza da 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)

Si suppone che la VM si trovi in ​​una rete virtuale dove può ottenere un indirizzo IP da un server DHCP. Le impostazioni di WSUS in una macchina virtuale vengono archiviate nel registro invece di essere distribuite tramite un oggetto Criteri di gruppo.

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:$false

È possibile aggiungere questo script di PowerShell all’Utilità di pianificazione per installare automaticamente gli aggiornamenti al modello una volta al mese alcuni giorni dopo Microsoft Patch Tuesday. Quindi, se distribuisci una nuova macchina virtuale da un modello VMWare, puoi essere certo che gli ultimi aggiornamenti di sicurezza Microsoft siano installati al suo interno.

Translate »