ESXi の root パスワードを忘れてしまった場合のリセット方法

ESXi の root パスワードを忘れてしまった場合のリセット方法について
記載します。

環境

vCenter Server 7.0 U3
ESXi 7.0 U3

ホストプロファイルを使用した root パスワードのリセット方法

まずは、vCenter Server のホストプロファイル機能を使用した ESXi の
root パスワードのリセット方法を記載します。

ホストプロファイルは Enterprise Plus エディションで使用できる機能
となりますので、留意ください。

初めに、vSphere Client へログインし [メニュー] → [ポリシーおよびプロファイル]
を選択します。

左ペインより [ホスト プロファイル] を選択し、[ホスト プロファイルの抽出] を
クリックします。

パスワードを変更する ESXi を選択し、[次へ] をクリックします。

ホストプロファイル名を設定し、[完了] をクリックします。

作成されたホストプロファイルを右クリックし、[ホスト プロファイルの編集]
をクリックします。

各コンポーネントにチェックが付いてるので全てチェックを外し、検索欄で
[root]と検索します。

[root] と検索した画面で、[ユーザー設定] → [root] にチェックを入れ
[パスワード] を [固定パスワード設定] に変更します。

[パスワード] に新しいパスワードを入力し、[保存] をクリック。

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

ESXi のパスワード要件を満たしている、パスワードを設定する必要があります。

・ESXi のパスワードとアカウントのロックアウト
 https://docs.vmware.com/jp/VMware-vSphere/7.0/com.vmware.esxi.upgrade.doc/GUID-DC96FFDB-F5F2-43EC-8C73-05ACDAE6BE43.html
 -> ESXi のパスワード

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

ホストプロファイルの更新が完了したら、対象のホストプロファイルを右クリック
→ [ホストおよびクラスタの添付/分離] をクリックし、対象の ESXi を選択の上、
[保存] をクリックします。

ホストプロファイルの添付が完了後、再度ホストプロファイルを右クリック →
[修正] をクリックし、対象の ESXi にチェックが入った状態で [修正] を実行
します。

以上で、ESXi の root パスワードが更新されました。

本操作により、特に ESXi が再起動されることもありませんでした。

<参考>
ホスト プロファイルを使用した ESXi root パスワードのリセット (68079)
https://kb.vmware.com/s/article/68079?lang=ja

PowerCLI を使用した ESXi の root パスワードのリセット

PowerCLI から実行する場合はホストプロファイルとは違い、全ての
エディションで実行可能となります。

ESXi では、esxcli コマンドを使用して root パスワードの更新を実施する
ことが可能となり、PowerCLI で vCenter Server に接続後、対象の
ESXi オブジェクトを取得し、esxcli コマンドを実行させるといったことが
可能です。

実際に PowerCLI で vCenter Server に接続し、以下のようなスクリプト
を実行することにより ESXi の root パスワードをリセットすることが可能
となります。

$cred = Get-Credential -UserName "root" -message "Enter new ESXi root password"
$vmhosts = get-vmhost | Out-GridView -PassThru -Title "Select ESXi hosts for changing the root password"
Foreach ($vmhost in $vmhosts) {
    $esxcli = get-esxcli -vmhost $vmhost -v2 
    $esxcli.system.account.set.Invoke(@{id=$cred.UserName;password=$cred.GetNetworkCredential().Password;passwordconfirmation=$cred.GetNetworkCredential().Password})
}
$esx_hosts = Get-VMHost my_host

foreach ($esx_host in $esx_hosts) {
  $esxcli = Get-EsxCli -VMhost $esx_host -V2
  $arguments = $esxcli.system.account.set.CreateArgs()
  $arguments.id = ‘root’
  $arguments.password = ‘P@ssword789’
  $arguments.passwordconfirmation = ‘P@ssword789’
  $arguments

  $esxcli.system.account.set.Invoke($arguments)
}

PowerCLI のインストール手順は以下で記事にしています。

タイトルとURLをコピーしました