汎用化した VHD をアップロードして Azure で新しい VM を作成するUpload a generalized VHD and use it to create new VMs in Azure

この記事では、汎用化した VM の VHD を PowerShell を使用して Azure にアップロードし、VHD からイメージを作成し、イメージから新しい VM を作成する方法を説明します。This article walks you through using PowerShell to upload a VHD of a generalized VM to Azure, create an image from the VHD, and create a new VM from that image. オンプレミスの仮想化ツールや別のクラウドからエクスポートされた VHD をアップロードできます。You can upload a VHD exported from an on-premises virtualization tool or from another cloud. 新しい VM に Managed Disks を使用すると VM 管理が簡略化されます。また、VM を可用性セット内に配置したときの可用性が向上します。Using Managed Disks for the new VM simplifies the VM management and provides better availability when the VM is placed in an availability set.

サンプル スクリプトの場合は、VHD を Azure にアップロードして新しい VM を作成するサンプル スクリプトを参照してください。For a sample script, see Sample script to upload a VHD to Azure and create a new VM.

開始する前にBefore you begin

注意

この記事は、新しい Azure PowerShell Az モジュールを使用するために更新されました。This article has been updated to use the new Azure PowerShell Az module. AzureRM モジュールはまだ使用でき、少なくとも 2020 年 12 月までは引き続きバグ修正が行われます。You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Az モジュールと AzureRM の互換性の詳細については、「Introducing the new Azure PowerShell Az module (新しい Azure PowerShell Az モジュールの概要)」を参照してください。To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Az モジュールのインストール手順については、Azure PowerShell のインストールを参照してください。For Az module installation instructions, see Install Azure PowerShell.

Sysprep を使用してソース VM を一般化するGeneralize the source VM by using Sysprep

特に重要な点は、Sysprep がすべての個人アカウント情報を削除して、マシンをイメージとして使用できるように準備することです。Sysprep removes all your personal account information, among other things, and prepares the machine to be used as an image. Sysprep の詳細については、Sysprep の概要に関するページを参照してください。For details about Sysprep, see the Sysprep Overview.

コンピューター上で実行されるサーバー ロールが Sysprep でサポートされていることを確認します。Make sure the server roles running on the machine are supported by Sysprep. 詳しくは、「 Sysprep Support for Server Roles」 (サーバー ロールに対する Sysprep サポート) をご覧ください。For more information, see Sysprep Support for Server Roles.

重要

初めて VHD を Azure にアップロードする前に Sysprep を実行する予定の場合は、VM の準備ができていることを確認してください。If you plan to run Sysprep before uploading your VHD to Azure for the first time, make sure you have prepared your VM.

  1. Windows 仮想マシンへのサインインSign in to the Windows virtual machine.

  2. 管理者としてコマンド プロンプト ウィンドウを開きます。Open the Command Prompt window as an administrator. ディレクトリを sysprep.exe%windir%\system32\sysprep に変更し、を実行します。Change the directory to %windir%\system32\sysprep, and then run sysprep.exe.

  3. [システム準備ツール] ダイアログ ボックスで [システムの OOBE (Out-of-Box Experience) に入る] を選択し、 [一般化する] チェック ボックスがオンになっていることを確認します。In the System Preparation Tool dialog box, select Enter System Out-of-Box Experience (OOBE), and make sure that the Generalize check box is enabled.

  4. [シャットダウン オプション][シャットダウン] を選択します。For Shutdown Options, select Shutdown.

  5. [OK] を選択します。Select OK.

    Sysprep の開始

  6. Sysprep は完了時に仮想マシンをシャットダウンします。When Sysprep finishes, it shuts down the virtual machine. VM は再起動しないでください。Do not restart the VM.

ストレージ アカウントを取得するGet a storage account

アップロードした VM イメージを格納するには、Azure にストレージ アカウントが必要です。You'll need a storage account in Azure to store the uploaded VM image. 既存のストレージ アカウントを選択することも、新しいストレージ アカウントを作成することもできます。You can either use an existing storage account or create a new one.

VHD を使用して VM のマネージド ディスクを作成する場合は、ストレージ アカウントの場所が VM を作成する場所と同じである必要があります。If you'll be using the VHD to create a managed disk for a VM, the storage account location must be the same location where you'll be creating the VM.

使用できるストレージ アカウントを表示するには、次のように入力します。To show the available storage accounts, enter:

Get-AzStorageAccount | Format-Table

ストレージ アカウントに VHD をアップロードするUpload the VHD to your storage account

Add-AzVhd コマンドレットを使用して、ストレージ アカウント内のコンテナーに VHD をアップロードします。Use the Add-AzVhd cmdlet to upload the VHD to a container in your storage account. この例は、myVHD.vhd ファイルを C:\Users\Public\Documents\Virtual hard disks\ から myResourceGroup リソース グループの mystorageaccount というストレージ アカウントにアップロードします。This example uploads the file myVHD.vhd from C:\Users\Public\Documents\Virtual hard disks\ to a storage account named mystorageaccount in the myResourceGroup resource group. ファイルは mycontainer というコンテナーに配置され、新しいファイル名は myUploadedVHD.vhd になります。The file will be placed into the container named mycontainer and the new file name will be myUploadedVHD.vhd.

$rgName = "myResourceGroup"
$urlOfUploadedImageVhd = "https://mystorageaccount.blob.core.windows.net/mycontainer/myUploadedVHD.vhd"
Add-AzVhd -ResourceGroupName $rgName -Destination $urlOfUploadedImageVhd `
    -LocalFilePath "C:\Users\Public\Documents\Virtual hard disks\myVHD.vhd"

成功した場合、次のような応答を取得します。If successful, you get a response that looks similar to this:

MD5 hash is being calculated for the file C:\Users\Public\Documents\Virtual hard disks\myVHD.vhd.
MD5 hash calculation is completed.
Elapsed time for the operation: 00:03:35
Creating new page blob of size 53687091712...
Elapsed time for upload: 01:12:49

LocalFilePath           DestinationUri
-------------           --------------
C:\Users\Public\Doc...  https://mystorageaccount.blob.core.windows.net/mycontainer/myUploadedVHD.vhd

このコマンドは、ネットワーク接続や VHD ファイルのサイズによっては、完了に時間がかかることがあります。Depending on your network connection and the size of your VHD file, this command may take a while to complete.

VHD をアップロードするためのその他のオプションOther options for uploading a VHD

次のいずれかの方法を使用して、ストレージ アカウントに VHD をアップロードすることもできます。You can also upload a VHD to your storage account using one of the following:

重要

VHD を Azure にアップロードする際に AzCopy を使用する場合は、アップロード スクリプトを実行する前に、 /BlobType:page を設定してください。If you are using AzCopy to upload your VHD to Azure, make sure you have set /BlobType:page before running your upload script. 宛先が BLOB で、このオプションが指定されていない場合、既定では AzCopy によってブロック BLOB が作成されます。If the destination is a blob and this option is not specified, by default AzCopy creates a block blob.

アップロードした VHD から管理イメージを作成するCreate a managed image from the uploaded VHD

一般化済みの OS VHD から管理イメージを作成します。Create a managed image from your generalized OS VHD. 次の値は実際の値に変更してください。Replace the following values with your own information.

まずいくつかのパラメーターを設定します。First, set some parameters:

$location = "East US" 
$imageName = "myImage"

一般化した OS VHD を使ってイメージを作成します。Create the image using your generalized OS VHD.

$imageConfig = New-AzImageConfig `
   -Location $location
$imageConfig = Set-AzImageOsDisk `
   -Image $imageConfig `
   -OsType Windows `
   -OsState Generalized `
   -BlobUri $urlOfUploadedImageVhd `
   -DiskSizeGB 20
New-AzImage `
   -ImageName $imageName `
   -ResourceGroupName $rgName `
   -Image $imageConfig

VM の作成Create the VM

イメージが用意できたので、イメージから新しい VM を 1 つ以上作成できます。Now that you have an image, you can create one or more new VMs from the image. この例では、myResourceGroupmyImage から myVM という名前の VM が作成されます。This example creates a VM named myVM from myImage, in myResourceGroup.

New-AzVm `
    -ResourceGroupName $rgName `
    -Name "myVM" `
    -ImageName $imageName `
    -Location $location `
    -VirtualNetworkName "myVnet" `
    -SubnetName "mySubnet" `
    -SecurityGroupName "myNSG" `
    -PublicIpAddressName "myPIP" `
    -OpenPorts 3389

次の手順Next steps

新しい仮想マシンにサインインします。Sign in to your new virtual machine. 詳しくは、「Windows が実行されている Azure 仮想マシンに接続してログオンする方法」をご覧ください。For more information, see How to connect and log on to an Azure virtual machine running Windows.