<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1678611822423757&amp;ev=PageView&amp;noscript=1">

Azure VM のパスワードをリセットする方法

Adam Bertram| July 16 2020

| monitoring, PowerShell

ドメインから抜けてコンピュータをリブートしたとき、はたと青ざめた経験はありませんか?いざ、というときになって、ローカル管理者のパスワードがわからないことに気づくようなことは、多くの人が1回は経験する失態です。ですが、Azure VMの場合はその心配がありません。VM 拡張機能を使用すると、VM のパスワードをフラッシュでリセットできます。

Microsoft は、Azure VM 管理者に、管理者パスワードリセットプロセスへのバックドアを提供しています。管理者パスワードを忘れたとしても、Azure ポータルのサブスクリプションの資格情報さえ知っていれば、うろたえる必要はありません。

VM パスワードのリセットには、Azure ポータルを使う方法と、PowerShell による方法の二通りがありますが、このブログでは PowerShell を使用する方法を説明します。簡単で、複数の VM に対して一度に行うことができます(本当に愚かな失敗をしてしまった場合のため)。

 

前提条件

Azure VM で管理者パスワードをリセットするには、まず、VM エージェントがインストールされていることを確認します。Azure PowerShell モジュール(Install-Module -Name Az)も必要です。

ギャラリーのイメージを介して構築された VM の場合は、VM エージェントはすでにインストールされているはずですが、独自のイメージを Azure にアップロードした場合は、VM エージェントがインストールされていることを確認する必要があります。

Azure に接続

前提条件が整ったら、Azure VM の管理者パスワードのリセットに取り掛かれますが、まず Azure に接続して認証を得ます。

PS51> Connect-AzAccount

ローカル管理者のパスワードリセットの手順

次に、VM を見つけて $vm 変数値に割り当てますが、事前に、VM エージェントがインストールされていることを確認しておいてください。

$vm = Get-AzVM -Name myvm -ResourceGroupName adbdemoresourcegroup

次に、OSProfile の下に埋め込まれた ProvisionVMAgent プロパティをチェックします。これは True または False を返します。

$vm.OSProfile.WindowsConfiguration.ProvisionVMAgent

これで、Set-AzureRmVMAccessExtension コマンドレットを使用してローカル管理者パスワードのリセットを試みることができます。このコマンドレットには7つの異なるパラメータが必要です。パラメータを整理しておくと便利なので、PowerShell スプラッティングを使用することにします。まずパラメータをハッシュテーブルに配置します。

$extensionParams = @{
    'VMName' = $vm.Name
    'Username' = $vm.OSProfile.AdminUsername
    'Password' = <Password>
    'ResourceGroupName' = $vm.ResourceGroupName
    'Name' = <AnyNameOfThisTask>
    'Location' = $vm.Location
}

上では6つのパラメータが示されていますが、残りの1つは少し複雑で取得するのにもうひと手間かかる、TypeHandlerVersion と呼ばれるパラメータです。このパラメータを取得するには、次のように Get-AzureRmVMExtensionImage コマンドレットを実行します。

$typeParams = @{
 'PublisherName' = 'Microsoft.Compute'
 'Type' = 'VMAccessAgent'
 'Location' = $vm.Location
}

$typeHandlerVersion = (Get-AzVMExtensionImage @typeParams | Sort-Object Version -Descending | Select-Object -first 1).Version

7つのパラメータは次のようになります。

$extensionParams = @{
 'VMName' = $vm.Name
 'Username' = $vm.OSProfile.AdminUsername
 'Password' = <Password>
 'ResourceGroupName' = $vm.ResourceGroupName
 'Name' = <AnyNameOfThisTask>
 'Location' = $vm.Location
 'TypeHandlerVersion' = $typeHandlerVersion
}

いくつかのパラメータには、$vm 変数を使っており、このオペレーションにはタスクの名前とパスワードを入力するだけで済みます。

変更を加えるためにコマンドを呼び出します。

Set-AzVMAccessExtension @extensionParams

Reset-Password-image2

成功したことがわかります。

もし、新しい管理者パスワードで VM にログインできない場合は、VM を再起動する必要があります。

$vm | Restart-AzVM

立ち上がったら、新しい管理者パスワードでログインできるようになっているはずです。

まとめ

このブログでは、Azure VM エージェントを使用して Azure VM のパスワードをリセットする方法を説明しました。もし、管理者パスワードを忘れても、このトリックが使えます。

 

Topics: monitoring, PowerShell

Default HTML block

コメントをどうぞ

メールアドレスは公開されません。アスタリスクマーク*のついたフィールドは必須項目です。

THIS POST WAS WRITTEN BY Adam Bertram

Adam Bertram is a 20-year veteran of IT. He’s currently an automation engineer, blogger, independent consultant, freelance writer, author, and trainer. Adam focuses on DevOps, system management, and automation technologies as well as various cloud platforms. He is a Microsoft Cloud and Datacenter Management MVP and efficiency nerd that enjoys teaching others a better way to leverage automation.

無料試用版

無料試用版をお気軽にお試しください。

無料試用版を試す

コンタクト

ご質問、ご意見をお寄せください。

連絡先

ブログの定期メール便

ブログを定期的にメール配信いたします。