共用方式為


在 Azure 中執行 Windows Server 的 VM 就地升級

就地升級可讓您從舊版作業系統升級至新版本,且您的設定、伺服器角色和資料將維持不變。 本文說明如何使用就地升級,將 Azure VM 移至更新版本的 Windows Server。 目前支援升級至 Windows Server 2012、Windows Server 2016、Windows Server 2019 和 Windows Server 2022。

開始就地升級之前:

  • 檢閱目標作業系統的升級需求:

    • 從 Windows Server 2008 (64 位元) 或 Windows Server 2008 R2 升級 Windows Server 2012 的選項

    • 從 Windows Server 2012 或 Windows Server 2012 R2 升級 Windows Server 2016 的選項

    • 從 Windows Server 2012 R2 或 Windows Server 2016 升級 Windows Server 2019 的選項

    • 從 Windows Server 2016 或 Windows Server 2019 升級 Windows Server 2022 的選項

  • 確認作業系統磁碟有足夠的 可用空間可執行就地升級。 如果需要更多的空間,請按照下列步驟來擴充連結至 VM 的作業系統磁碟。

  • 停用防毒軟體、反間諜軟體及防火牆。 這些類型的軟體可能會與升級流程衝突。 在升級完成後,請重新啟用防毒軟體、反間諜軟體及防火牆。

注意

在 Azure Windows VM 上執行就地升級時,不會更新 Azure 入口網站 上的 VM 屬性;變更只會反映在 OS 內。 這表示 VM 屬性中的來源映像資訊,包括發行者、供應專案和方案,會保持不變。 用來部署 VM 的映像會維持不變,而且只會升級 OS。

將 VM 升級為大量授權 (KMS 伺服器啟用)

Azure 提供的升級媒體需要將 VM 設定為 Windows Server 大量授權。 針對從 Azure 通用映像安裝的 Windows Server VM,這是預設行為。 如果 VM 已匯入 Azure,則可能需要轉換為大量授權,才能使用 Azure 提供的升級媒體。 若要確認 VM 已設定為大量授權啟用,請遵循下列步驟以設定適當的 KMS 用戶端設定金鑰。 如果已變更啟用設定,請遵循下列步驟以驗證 Azure KMS 服務的連線

升級至受控磁碟

就地升級流程需要在 VM 上使用受控磁碟,才能進行升級。 Azure 中大部分的 VM 都使用受控磁碟,而 2022 年 11 月已宣佈淘汰非受控磁碟的支援。 如果 VM 目前使用非受控磁碟,請遵循下列步驟以移轉至受控磁碟

建立作業系統磁碟的快照集

建議您建立作業系統磁碟和任何資料磁碟的快照集,然後再開始就地升級流程。 如果在就地升級流程期間發生失敗時,這可讓您還原為 VM 的先前狀態。 若要在每個磁碟上建立快照集,請遵循下列步驟以建立磁碟的快照集

建立升級媒體磁碟

若要開始就地升級,升級媒體必須以受控磁碟連結至 VM。 若要建立升級媒體,請在下列適用於 Windows Server 2022 的 PowerShell 指令碼中修改變數。 升級媒體磁碟可用於生集多個 VM,但一次僅能用於升級單一 VM。 若要同時升級多個 VM,則每次同時升級必須建立多個升級磁碟。

參數 定義
resourceGroup 建立升級媒體受控磁碟所在的資源群組名稱。 如果具名資源群組不存在,則會加以建立。
location 建立升級媒體受控磁碟所在的 Azure 區域。 此區域必須與要升級的 VM 相同。
區域 建立升級媒體受控磁碟所在所選區域中的 Azure 區域。 此區域必須與要升級的 VM 相同。 針對區域 VM (非區域性),區域參數應為 ""。
diskName 包含升級媒體的受控磁碟名稱
SKU Windows Server 升級媒體版本。 這必須是:server2016Upgradeserver2019Upgradeserver2022Upgradeserver2012Upgrade

如果您有多個訂用帳戶,則應執行 Set-AzContext -Subscription '<subscription name or id> 以指定要使用的訂用帳戶。

PowerShell 指令碼

#
# Customer specific parameters


# Resource group of the source VM
$resourceGroup = "WindowsServerUpgrades"

# Location of the source VM
$location = "WestUS2"

# Zone of the source VM, if any
$zone = "" 

# Disk name for the that will be created
$diskName = "WindowsServer2022UpgradeDisk"

# Target version for the upgrade - must be either server2022Upgrade, server2019Upgrade, server2016Upgrade or server2012Upgrade
$sku = "server2022Upgrade"


# Common parameters

$publisher = "MicrosoftWindowsServer"
$offer = "WindowsServerUpgrade"
$managedDiskSKU = "Standard_LRS"

#
# Get the latest version of the special (hidden) VM Image from the Azure Marketplace

$versions = Get-AzVMImage -PublisherName $publisher -Location $location -Offer $offer -Skus $sku | sort-object -Descending {[version] $_.Version	}
$latestString = $versions[0].Version


# Get the special (hidden) VM Image from the Azure Marketplace by version - the image is used to create a disk to upgrade to the new version


$image = Get-AzVMImage -Location $location `
                       -PublisherName $publisher `
                       -Offer $offer `
                       -Skus $sku `
                       -Version $latestString

#
# Create Resource Group if it doesn't exist
#

if (-not (Get-AzResourceGroup -Name $resourceGroup -ErrorAction SilentlyContinue)) {
    New-AzResourceGroup -Name $resourceGroup -Location $location    
}

#
# Create Managed Disk from LUN 0
#

if ($zone){
    $diskConfig = New-AzDiskConfig -SkuName $managedDiskSKU `
                                   -CreateOption FromImage `
                                   -Zone $zone `
                                   -Location $location
} else {
    $diskConfig = New-AzDiskConfig -SkuName $managedDiskSKU `
                                   -CreateOption FromImage `
                                   -Location $location
} 

Set-AzDiskImageReference -Disk $diskConfig -Id $image.Id -Lun 0

New-AzDisk -ResourceGroupName $resourceGroup `
           -DiskName $diskName `
           -Disk $diskConfig  

將升級媒體連結至 VM

將目標 Windows Server 版本的升級媒體連結至要升級的 VM。 即使 VM 為執行中或停止狀態時,此動作仍可完成。

入口網站指示

  1. 登入 Azure 入口網站

  2. 搜尋並選取 [虛擬機器]

  3. 從清單選取要執行就地升級的虛擬機器。

  4. 在 [虛擬機器] 頁面上,選取 [磁碟]

  5. 在 [磁碟] 頁面上,選取 [連結現有磁碟]

  6. 在 [磁碟名稱] 的下拉式清單中,選取上一步驟建立的升級磁碟名稱。

  7. 選取 [儲存] 以將升級磁碟連結至 VM。

執行 Windows Server 2016、2019 或 2022 的就地升級

若要起始就地升級,VM 必須為 Running 狀態。 VM 為執行中狀態後,請使用下列步驟以執行升級。

  1. 使用 RDPRDP-Bastion 連線至 VM。

  2. 決定升級磁碟的磁碟機代號 (如果沒有其他資料磁碟,則通常為 E: 或 F:)。

  3. 啟動 Windows PowerShell。

  4. 將目錄變更為升級磁碟的唯一目錄。

  5. 執行下列命令以開始升級:

    .\setup.exe /auto upgrade /dynamicupdate disable 
    

    您可以在 Windows Server 升級命令中使用 /eula accept 參數,在升級程式期間自動接受Microsoft軟體授權條款(最終使用者許可協定或 EULA)。 使用 /eula accept 參數有助於避免升級程式因未手動接受 EULA 而停滯的問題。 此參數可確保升級程式可以順利進行,而不需要用戶互動才能接受授權條款。

    .\setup.exe /auto upgrade /dynamicupdate disable /eula accept
    
  6. 使用 Windows Server 升級矩陣,根據目前的 VM 版本和設定選取正確的「升級至」映像。

在升級流程期間,VM 將自動從 RDP 工作階段中斷連線。 從 RDP 工作階段中斷連線後,可透過 Azure 入口網站提供的螢幕擷取畫面功能來監視升級進度。

僅執行 Windows Server 2012 的就地升級

若要起始就地升級,VM 必須為 Running 狀態。 VM 為執行中狀態後,請使用下列步驟以執行升級。

  1. 使用 RDPRDP-Bastion 連線至 VM。

  2. 決定升級磁碟的磁碟機代號 (如果沒有其他資料磁碟,則通常為 E: 或 F:)。

  3. 啟動 Windows PowerShell。

  4. 將目錄變更為升級磁碟的唯一目錄。

  5. 執行下列命令以開始升級:

    .\setup.exe 
    
  6. 當啟動 Windows 安裝程式時,請選取 [立即安裝]

  7. 如需取得 Windows 安裝程式的重要更新,請選取 [不用了,謝謝]

  8. 使用 Windows Server 升級矩陣,根據目前的 VM 版本和設定選取正確的 Windows Server 2012「升級至」映像。

  9. 在 [授權條款] 頁面上,選取 [我接受授權條款],然後選取 [下一步]

  10. 針對「您要哪一種安裝類型?」,請選取 [升級:安裝 Windows 並保留檔案、設定和應用程式]

  11. 安裝程式將產生相容性報告,您可忽略警告並選取 [下一步]

  12. 完成時,機器將重新開機,您將自動從 RDP 工作階段中斷連線。 從 RDP 工作階段中斷連線後,可透過 Azure 入口網站提供的螢幕擷取畫面功能來監視升級進度。

升級後步驟

成功完成升級流程後,應採取下列步驟以清除升級流程期間建立的成品:

  • 若已建立作業系統磁碟和資料磁碟的快照集,請加以刪除。

  • 刪除升級媒體受控磁碟。

  • 啟用升級流程開始時可能已停用的防毒軟體、防間諜軟體或防火牆軟體。

重要

升級流程後,便不會變更映像計劃資訊。

從失敗中復原

如果就地升級流程無法成功完成,則若已建立作業系統磁碟和資料磁碟的快照集,便可返回舊版的 VM。 若要使用快照集將 VM 還原為先前狀態,請完成下列步驟:

  1. 請遵循從快照集建立磁碟中的步驟,從作業系統磁碟快照集和每個資料磁碟快照集建立新受控磁碟,確保在與 VM 相同的可用性區域中建立磁碟 (如果 VM 位於該區域)。

  2. 停止 VM。

  3. 交換 VM 的作業系統磁碟

  4. 從 VM 中斷連結資料磁碟

  5. 連結從步驟 1 快照集建立的資料磁碟

  6. 重新啟動 VM。

下一步