本記事では、Azure PowerShellを使用して、リソースグループ・仮想ネットワーク(以下Vnet)・仮想マシン(以下VM)を作成する手順をご紹介します。
Azure PowerShellとは
Azure PowerShellは、Azure上のリソースを操作するためのPowerShellモジュールです。
Azure PowerShellを利用することで、Azure Portalでの操作をスクリプト化し、リソースの自動作成や再利用を実現できます。
本記事の前提条件
- Azure PowerShellのモジュールをインストール済み
- 有効なサブスクリプションを持つAzureアカウントでログイン可能
リソースグループの作成方法
1.PowerShellを起動して、Azureへログインします。
Connect-AzAccount
2.リソースグループ名、地域を指定し、作成をします。
例として、今回はリソースグループ名「Test_group」、地域名を「Switzerland North」とします。
New-AzResourceGroup -Name "Test_group" -Location "Switzerland North"
3.以下のコマンドを実行して、リソースグループが作成できたことを確認します。
Get-AzResourceGroup

4.Azure Portal上の画面でも、作成したリソースグループが表示されることが確認できました。

仮想ネットワークの作成方法
Vnetの作成方法
1.Vnet名、リソースグループ名、地域、IPアドレスを指定して、Vnetを作成します。
今回は例として、Vnet名「vnet01」地域「switzerlandnorth」 IPアドレス「192.168.0.0/24」 として設定します。
$vnet = @{
Name = 'vnet01'
ResourceGroupName = 'Test_group'
Location = 'switzerlandnorth'
AddressPrefix = '192.168.0.0/24'
}
$virtualNetwork = New-AzVirtualNetwork @vnet
2.Azure Portalの画面から、作成したVnetが表示されることが確認できます。

サブネットの作成方法
1.先ほど作成したVnetから、IPアドレスを指定してサブネットを作成します。
今回は例として、サブネット名を「Subnet01」として192.168.0.0/25を割り当てます。
$subnet = @{
Name = 'Subnet01'
VirtualNetwork = $virtualNetwork
AddressPrefix = '192.168.0.0/25'
}
$subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
$virtualNetwork | Set-AzVirtualNetwork
2.Azure Portalから サブネットが表示され、追加されていることが確認できます。

VMの作成方法
VMの作成を以下の手順で進めます。
- 資格情報の登録
- NICの作成
- VM作成のための構成設定
- VMの作成
資格情報の登録手順
1.VMにログインする際に必要となる、任意のユーザー名とパスワードの資格情報オブジェクトを作成します。
$cred = Get-Credential
2.資格情報のポップが表示されるので、任意のユーザー名とパスワードを登録します。

NICの作成方法
1.NICを作成するにあたり、Vnet、リソースグループ名、地域を変数に格納します。
$vnet = Get-AzVirtualNetwork -Name 'vnet01' -ResourceGroupName 'Test_group'
$rgName = "Test_group"
$location = "switzerlandnorth"
2.任意のNIC名を指定し、先ほど作成した変数を利用してNICを作成します。
今回は例としてNIC名を「nicVM」と指定します。
$nic = @{
Name = "nicVM"
ResourceGroupName = $rgName
Location = $location
Subnet = $vnet.Subnets[0]
}
$nicVM = New-AzNetworkInterface @nic
VMの作成手順
1.前の手順で作成したNICを変数に格納をします。
$nicVM = New-AzNetworkInterface @nic
$nicName = "nicVM"
$nic = Get-AzNetworkInterface -Name $nicName -ResourceGroupName
2.作成するVMに対して希望の要件を指定します。今回は以下の要件でVMを作成します。
- VMのサイズ:Standartd_B2s
- OSの種類:Windows
- イメージ:WindowsServer 2022 Datacenter
$rgName$vmName = "Websv"$vmConfig = New-AzVMConfig -VMName $vmName -VMSize "Standard_B2s" |
Set-AzVMOperatingSystem -Windows -ComputerName $vmName -Credential $cred |
Set-AzVMSourceImage -PublisherName "MicrosoftWindowsServer" -Offer "WindowsServer" -Skus "2022-Datacenter" -Version "latest" |
Add-AzVMNetworkInterface -Id $nic.Id
3.以下のコマンドを実行して、VMの作成を行います。
New-AzVM -ResourceGroupName $rgName -Location $location -VM $vmConfig
4.実行すると警告が表示され、作成が開始されます。

5.VMの作成後、実行結果が表示され作成できたことが確認できました。

6.Azure Portalの画面にも作成したVMがリソースグループに表示されています。
![]()
7.作成したVMに接続すると、デスクトップ画面が表示されて接続できることが確認できました。

Azure PowerShellを使用したVMの作成方法は以上となります。
発生したエラーと対処方法
事象:VM作成時に資格情報が登録できない
VM作成時のGet-Credentialを実行した際に以下のエラーが発生する場合がありました。
最初に作成したVMでは実行できましたが、同じ仮想ネットワークに2台目のVMを追加で作成しようとするとこのようなエラーが発生しました。
$cred = Get-Credential
コマンド パイプライン位置 1 のコマンドレット Get-Credential
次のパラメーターに値を指定してください:
Credential
Get-Credential : コマンドを処理できません。次の 1 つ以上の必須パラメーターが指定されていません: Credential。
発生場所 行:1 文字:10
+ $cred = Get-Credential
+ ~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-Credential]、ParameterBindingException
+ FullyQualifiedErrorId : MissingMandatoryParameter,Microsoft.PowerShell.Commands.GetCredentialCommand

対処法: スクリプト内に直接ユーザー名とパスワードを指定
以下のように、ユーザー名とパスワードを直接指定する方法で、資格情報の登録を行いました。
Connect-AzAccount$cred = New-Object System.Management.Automation.PSCredential ("<ユーザー名>", (ConvertTo-SecureString "<パスワード>" -AsPlainText -Force))
資格情報を登録することができました。

今回は学習目的の検証であったため、例外的にコード内へパスワードを直接記載して回避してますが、通常の運用では推奨されません。
実際の運用では、資格情報の安全な管理方法をご利用いただくことをお勧めします。
終わりに
本記事では、Azure PowerShellを使用して、リソースグループ、Vnet、VMを作成していく手順をご紹介しました。
私自身、Azure PortalでのVM作成に慣れていたため、当初はPowerShellの操作やスクリプトの作成に慣れるのに時間がかかりましたが、実際に操作をしみるとAzure Portalでの作成よりも設定ミスが少なく、同様の構成でVMを作成する際に役に立つと実感しました。
今回ご紹介したスクリプトを応用すると、複数台のVMの作成やIISインストールなどの自動化にも発展させることができます。Azure PowerShellでVMを作成する際に参考になれば幸いです。
永井 美菜(日本ビジネスシステムズ株式会社)
西日本事業本部所属 クラウドインテグレーション部に所属。 Microsoft 365 製品を中心に扱ってます。趣味は美味しい物を食べることです。好きな食べ物は砂肝です。
担当記事一覧