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 のインストール手順は以下で記事にしています。