Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

PowerShellを使用したVMWare上のWindowsVMテンプレートの更新

VMWareに新しい仮想マシンをデプロイするには、通常、VMテンプレートが使用されます。 VMWare VMテンプレートは、構成された設定、インストールされたソフトウェア、およびセキュリティ更新プログラムを含む参照仮想マシンのコピーです。管理者は、VMテンプレートを定期的に更新して、最新の状態に保つ必要があります。新しいWindowsセキュリティ更新プログラムのインストール(少なくとも月に1回)、システムアプリとアプリケーションアプリの更新、ウイルス対策定義の更新などです。

VMWareでのVMテンプレートの更新プロセスは、次の段階で構成されています。

  1. コンテンツライブラリのテンプレートが仮想マシンに変換されます。;
  2. 起動後、管理者はログオンし、WSUSを使用して承認されたWindows Updateをインストールし、必要なソフトウェアを更新します。
  3. アップデートがインストールされた後、VMが再起動され、電源がオフになり、テンプレートに変換されます。

この記事では、手動で何もせずに、WindowsUpdateをVMWare仮想マシンテンプレートに自動的にインストールする方法を示します。

VMWare仮想マシンの場合、スタンドアロンイメージまたはディストリビューションに使用されるWindowsイメージに更新を統合する方法を直接使用することはできません。

PowerCLIを使用して、Windows仮想マシンに更新プログラムをインストールできます。 VMWareツール、PowerShellバージョン4(またはそれ以降)、およびPSWindowsUpdateモジュールが仮想マシンテンプレートにインストールされていることを前提としています。 PowerShellスクリプトの実行は、スクリプト実行ポリシーによってゲストOSで許可されている必要があります。

以下のPowerCLIスクリプトは、VMWareテンプレートをVMに自動的に変換し、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)

VMは、DHCPサーバーからIPアドレスを取得できる仮想ネットワークに配置されていると想定されています。仮想マシンのWSUS設定は、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

PowerShellを使用したVMWare上のWindowsVMテンプレートの更新

このPowerShellスクリプトをタスクスケジューラに追加して、火曜日のMicrosoftパッチの数日後に月に1回テンプレートの更新を自動的にインストールできます。次に、VMWareテンプレートから新しい仮想マシンを展開する場合、最新のMicrosoftセキュリティアップデートがインストールされていることを確認できます。


  1. Windows10でPowerShellを使用してインストール済みプログラムのリストを作成する方法

    Windows 10 PCを所有している場合は、時間の経過とともに多くのプログラムをインストールした可能性がありますが、それらすべてを覚えておくのは少し難しいです。 Windows PowerShellアプリケーションを使用すると、さまざまな目的に役立つ、コンピューターにインストールされているプログラムのリストを生成できます。たとえば、新しいコンピュータをセットアップする必要がある場合、インストールする必要のあるプログラムを見逃していないことを確認する必要があります。このガイドでは、Windows10にPowerShellを使用してインストールされたプログラムを表示する簡単な方法を紹介します。

  2. Windows 10 のコンテキスト メニューで PowerShell をコマンド プロンプトに置き換える

    PowerShell をコンテキスト内のコマンド プロンプトに置き換えるWindows 10 のメニュー: Windows 10 の最新の Creators Update に最近更新した場合は、Shift キーを押しながら任意のフォルダーを右クリックすると、[コマンド ウィンドウをここで開く] オプションが [PowerShell ウィンドウをここで開く] に置き換えられていることに既に気付いているかもしれません。多くの人はpowershellが何であるかを知りませんが、マイクロソフトは彼らがこの機能をどのように使用することを期待していますか?そのため、ファイル エクスプローラーのコンテキスト