Computer >> Máy Tính >  >> Hệ thống >> máy chủ Windows

Cập nhật Mẫu Windows VM trên VMWare với PowerShell

Để triển khai các máy ảo mới trong VMWare, các mẫu VM thường được sử dụng. Mẫu VMWare VM là một bản sao máy ảo tham chiếu với các cài đặt đã định cấu hình, phần mềm đã cài đặt và các bản cập nhật bảo mật. Quản trị viên cần thường xuyên cập nhật mẫu VM để luôn cập nhật:cài đặt các bản cập nhật bảo mật Windows mới (ít nhất mỗi tháng một lần), cập nhật ứng dụng hệ thống và ứng dụng, cập nhật định nghĩa chống vi-rút, v.v.

Quá trình cập nhật mẫu máy ảo trên VMWare bao gồm các giai đoạn sau:

  1. Một mẫu từ Thư viện Nội dung được chuyển đổi thành một máy ảo;
  2. Sau khi khởi động, quản trị viên đăng nhập, cài đặt các bản cập nhật Windows đã được phê duyệt bằng WSUS, cập nhật phần mềm cần thiết;
  3. Sau khi các bản cập nhật được cài đặt, máy ảo sẽ được khởi động lại, sau đó chuyển đổi và chuyển đổi trở lại mẫu.

Trong bài viết này, chúng tôi sẽ hướng dẫn cách cài đặt các bản cập nhật Windows cho mẫu máy ảo VMWare một cách tự động mà không cần thực hiện bất kỳ thao tác thủ công nào.

Đối với máy ảo VMWare, bạn sẽ không thể sử dụng trực tiếp các phương pháp tích hợp các bản cập nhật vào hình ảnh Windows được sử dụng cho các hình ảnh hoặc bản phân phối độc lập.

Bạn có thể sử dụng PowerCLI để cài đặt các bản cập nhật cho máy ảo Windows. Chúng tôi giả định rằng các công cụ VMWare, PowerShell phiên bản 4 (hoặc mới hơn) và mô-đun PSWindowsUpdate được cài đặt trong mẫu máy ảo. Chính sách thực thi tập lệnh phải được phép chạy các tập lệnh PowerShell trong hệ điều hành khách.

Tập lệnh PowerCLI bên dưới sẽ giúp bạn tự động chuyển đổi mẫu VMWare thành một máy ảo và cài đặt các bản cập nhật bảo mật từ 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)

Người ta cho rằng máy ảo nằm trong một mạng ảo nơi nó có thể lấy địa chỉ IP từ máy chủ DHCP. Cài đặt WSUS trong máy ảo được lưu trữ trong sổ đăng ký thay vì triển khai thông qua 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:$false

Cập nhật Mẫu Windows VM trên VMWare với PowerShell

Bạn có thể thêm tập lệnh PowerShell này vào Trình lập lịch tác vụ để tự động cài đặt các bản cập nhật cho mẫu mỗi tháng một lần vài ngày sau Microsoft Patch Thứ Ba. Sau đó, nếu bạn triển khai một máy ảo mới từ mẫu VMWare, bạn có thể chắc chắn rằng các bản cập nhật bảo mật mới nhất của Microsoft đã được cài đặt trong đó.