Обновление шаблонов виртуальных машин Windows в VMWare с помощью PowerShell
Для развертывания новых виртуальных машин в VMWare обычно используются шаблоны виртуальных машин. Шаблон виртуальной машины VMWare — это эталонная копия виртуальной машины с настроенными параметрами, установленным программным обеспечением и обновлениями безопасности. Администратору необходимо регулярно обновлять шаблон виртуальной машины, чтобы поддерживать его в актуальном состоянии: устанавливать новые обновления безопасности Windows (не реже одного раза в месяц), обновлять системные и прикладные приложения, обновлять определения антивирусов и т. д.
Процесс обновления шаблона ВМ на VMWare состоит из следующих этапов:
Шаблон из библиотеки контента конвертируется в виртуальную машину.;
После его запуска администратор входит в систему, устанавливает одобренные обновления Windows с помощью WSUS, обновляет необходимое программное обеспечение;
После установки обновлений виртуальная машина перезапускается, затем выключается и преобразуется обратно в шаблон.
В этой статье мы покажем, как автоматически устанавливать обновления Windows в шаблон виртуальной машины VMWare, ничего не делая вручную.
Для виртуальных машин VMWare вы не сможете напрямую использовать методы интеграции обновлений в образ Windows, которые используются для автономных образов или дистрибутивов.
Вы можете использовать PowerCLI для установки обновлений на виртуальную машину Windows. Мы предполагаем, что в шаблоне виртуальной машины установлены инструменты VMWare, PowerShell версии 4 (или новее) и модуль PSWindowsUpdate. Запуск сценариев PowerShell должен быть разрешен в гостевой ОС политикой выполнения сценариев.
Приведенный ниже сценарий PowerCLI поможет вам автоматически преобразовать шаблон VMWare в виртуальную машину и установить обновления безопасности из 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)Предполагается, что виртуальная машина находится в виртуальной сети, где она может получить IP-адрес от DHCP-сервера. Параметры WSUS на виртуальной машине хранятся в реестре, а не развертываются через объект групповой политики.
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Вы можете добавить этот сценарий PowerShell в планировщик задач, чтобы автоматически устанавливать обновления для шаблона один раз в месяц через несколько дней после Microsoft Patch Tuesday. Тогда, если вы развернете новую виртуальную машину из шаблона VMWare, вы можете быть уверены, что в ней установлены последние обновления безопасности Microsoft.
