0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ADレスAzure Localでのデプロイユーザーのパスワード変更の試行錯誤

0
Posted at

本記事について

ADレス構成のAzure Localでは各ノードで同じ名前・同じパスワードのローカルIDを用意して、それをデプロイユーザーとして利用します。
このローカルIDは組み込みの管管理アカウント (administrator)とは別に作成する必要があります。

本記事ではこのローカルIDのパスワード変更について記載します。
ADレスではなくドメイン環境のAzure Localにおけるデプロイユーザーのパスワード変更方法はこちらに掲載されているのですが、ADレス環境の場合の手順は明示されていません。
Set-AzureStackLCMUserPasswordというコマンドを使うのですが、こちらのコマンドのリファレンスも公開されていないためADレス環境でのパスワード変更を試行錯誤しています。
MS Learn | デプロイユーザーのパスワードを変更する

正確な情報は公開されていないため、運用環境で万が一同じ状況になった場合はMicrosoftサポートへ問い合わせいただくことも推奨します。

デプロイユーザーのパスワード変更

変更のきっかけ

ある時ホストノードにリモートデスクトップで接続しようとしたところ、パスワードの有効期限切れのため変更を求められたのがきっかけでした。
Windows ServerではローカルIDの作成時に-PasswordNeverExpiresオプションをつけずに作成してしまうと既定でパスワードの有効期限が42日に設定される仕様になっています。
構築時に特に考えずデフォルトで作成してしまったのが原因でした。

ということで先に結論の一つを言ってしまうとデプロイユーザーのパスワードは有効期限無期限にしてしまうのもよいでしょう。
一方でポリシーで定期的なパスワード変更をおこないたいケースもあると思います。
その場合は私が試行錯誤した手順も参考にしていただければと思います。

変更 (Windowsローカルアカウントとしての変更のみ) の影響

今回リモートデスクトップ接続のためにパスワード変更をログイン時のUIでおこないました。
その後クラスター全体でデプロイユーザーアカウントのパスワード統一は必須要件のため、別のノードも同様にパスワード変更をおこないました。

その状態では特に問題なくクラスターの利用ができていたのですが、影響を確認したのはクラスターの更新のためにInvoke-SolutionUpdatePrecheck -SystemHealthを実行してGet-SolutionUpdateEnvironmentの結果を確認したときでした。
以下のように"ECEAgentServicede Account Health Check"でCRITICALレベルのERRORが発生していました。
get-solutionupdateenvironment_error.png

Azure Localクラスターへの反映の試行錯誤

状況からOSユーザーのパスワードは変更されているもののAzure Localのクラスター機能を使う上で必要な内部のサービスにパスワード変更が反映されていない状況と推測されました。
エラーメッセージ内の"Remediation"には"Contact support"と書かれていましたが、自宅の環境で問い合わせパスもなかったので通常のドメイン環境のAzure Localでのデプロイユーザーのパスワード変更手順を元に試行錯誤しています。

まず、通常のドメイン環境の場合の手順を確認しましょう。
対象のドメインユーザーのパスワードを変更する前に、変更前と変更後のパスワードを指定して以下のコマンドを実行することでパスワードの変更と変更内容のクラスター、ADへの反映をおこなう手順になっています。

$old_pass = convertto-securestring "<Old password>" -asplaintext -force
$new_pass = convertto-securestring "<New password>" -asplaintext -force

Set-AzureStackLCMUserPassword -Identity "<デプロイユーザー>" -OldPassword $old_pass -NewPassword $new_pass -UpdateAD

"-UpdateAD"オプションでAD側にもパスワード変更を反映してくれているようです。
そこで、ADへの反映を除外しつつ、既に変更済みのローカルIDのパスワード変更ができないかを試しています。
先に成功した際のコマンドを示しますとこちらの通りで、変更後の新しいパスワードのみをオプションで指定して実行しています。

Set-AzureStackLCMUserPassword -Identity "<デプロイユーザー>" -NewPassword $new_pass

コマンド実行後、そのままでは先のエラーが解消されなかったため、パスワードの更新がおこなわれたECE Storeに関連するサービスとして "ECEAgent"サービスを各ノードで再起動しています。
"ECEAgent"の再起動後は無事"ECEAgentServicede Account Health Check"のエラーが解消されました。

コマンド実行時の様子はこちら。
set-azurestacklcmuserpassword.png
restart-service.png

Set-AzureStackLCMUserPasswordの実行

上記にたどり着くまでにハマったSet-AzureStackLCMUserPasswordのポイントも記載しておきます。
まず、"-UpdateAD"オプションのみを外して、変更前と変更後のパスワードオプションをつけて実行したところ、以下のようにパラメータセットが解決できないというエラーが出ました。
password-change-error.png

Get-Command Set-AzureStackLCMUserPassword -Syntaxでシンタックスを確認したところ、2通りのパラメータセットが確認できました。
この内容から変更前後のパスワードオプションの指定のみではどちらのパラメータセットか特定できないためのエラーになっています。
通常の実行では"-UpdateAD"オプションで上のパラメータセットが選ばれますが、"UpdateAD"がない場合はどちらのパラメータセットの可能性も残ってしまっています。
余談ですがGet-CommandはAzure Localの内部で使われているPowerShellモジュールの実行を解読する際など、知らないコマンドを理解する上でも覚えておくと役立つ便利なコマンドです。 (そのコマンドが含まれるモジュールを探したり、モジュールに含まれるコマンドをリストしたり・・・等など)
command-syntax.png

そのため、どちらかのパラメータセットに特定するには、"-UpdateAD"をつけて上のパラメータセットに確定させるか、"-OldPassword"を外して下のパラメータセットに確定させることが考えられました。
よって、ADレス環境であるため"OldPassword"オプションを外すことで実行しています。

実行はAction plan Instanceとして作成され、完了後はGet-ActionPlanInstanceでも完了が確認できました。
get-actionplan-instance.png

また、変更のログファイルが"C:\CloudContent\MASLogs\DomainCredentialRotation"に出力されており、以下のようにECE Storeの情報が更新されていることが確認できました。

***********************************************
Logging Script    : C:\Program Files\WindowsPowerShell\Modules\Microsoft.AS.Infra.Security.SecretRotation\Microsoft.AS.Infra.Security.SecretRotation.psm1
Logging Function  : Set-AzureStackLCMUserPassword
Log file path     : C:\CloudContent\MASLogs\DomainCredentialRotation\AzsSecurity_Set-AzureStackLCMUserPassword_20260725-033210.log
Log Creation Time : 20260725-033210
************************************************


2026-07-25 03:32:30 LINE 0896 VERBOSE:	Updating credentials for user azlkanrisha.
2026-07-25 03:32:30 LINE 0638 VERBOSE:	Checking if there are any running action plans.
2026-07-25 03:32:31 LINE 0645 VERBOSE:	No action plans in progress.
2026-07-25 03:32:31 LINE 0214 VERBOSE:	Generating encryption certificate. Action plan Instance ID: edf5ed6d-b007-4921-a41c-c4abb5cebcce
2026-07-25 03:33:12 LINE 0955 VERBOSE:	Updating credentials in ECE store.
2026-07-25 03:33:12 LINE 0532 VERBOSE:	ECE cluster group status: Online.
2026-07-25 03:33:12 LINE 0537 VERBOSE:	Updating password in ECE
2026-07-25 03:33:12 LINE 0538 VERBOSE:	Got new credentials
2026-07-25 03:33:12 LINE 0541 VERBOSE:	Updating ECE Container DomainAdmin with new credentials.
2026-07-25 03:33:12 LINE 0543 VERBOSE:	Completed updating ECE Container DomainAdmin with new credentials.
2026-07-25 03:33:12 LINE 0541 VERBOSE:	Updating ECE Container DeploymentDomainAdmin with new credentials.
2026-07-25 03:33:12 LINE 0543 VERBOSE:	Completed updating ECE Container DeploymentDomainAdmin with new credentials.
2026-07-25 03:33:12 LINE 0541 VERBOSE:	Updating ECE Container SecondaryDomainAdmin with new credentials.
2026-07-25 03:33:12 LINE 0543 VERBOSE:	Completed updating ECE Container SecondaryDomainAdmin with new credentials.
2026-07-25 03:33:12 LINE 0541 VERBOSE:	Updating ECE Container TemporaryDomainAdmin with new credentials.
2026-07-25 03:33:12 LINE 0543 VERBOSE:	Completed updating ECE Container TemporaryDomainAdmin with new credentials.
2026-07-25 03:33:12 LINE 0541 VERBOSE:	Updating ECE Container BareMetalAdmin with new credentials.
2026-07-25 03:33:12 LINE 0543 VERBOSE:	Completed updating ECE Container BareMetalAdmin with new credentials.
2026-07-25 03:33:12 LINE 0541 VERBOSE:	Updating ECE Container FabricAdmin with new credentials.
2026-07-25 03:33:12 LINE 0543 VERBOSE:	Completed updating ECE Container FabricAdmin with new credentials.
2026-07-25 03:33:12 LINE 0541 VERBOSE:	Updating ECE Container SecondaryFabric with new credentials.
2026-07-25 03:33:12 LINE 0543 VERBOSE:	Completed updating ECE Container SecondaryFabric with new credentials.
2026-07-25 03:33:12 LINE 0541 VERBOSE:	Updating ECE Container CloudAdmin with new credentials.
2026-07-25 03:33:12 LINE 0543 VERBOSE:	Completed updating ECE Container CloudAdmin with new credentials.
2026-07-25 03:33:12 LINE 0545 VERBOSE:	Credentials successfully updated in ECE.
2026-07-25 03:33:12 LINE 0965 VERBOSE:	Validating credential update in ECE. Action plan Instance ID: 5f2382e5-72c2-4569-abe3-55844b71e36e
2026-07-25 03:33:44 LINE 0978 VERBOSE:	azlkanrisha user credentials have been successfully updated.
2026-07-25 03:33:44 LINE 0979 WARNING:	Please close this session and log in again.
2026-07-25 03:33:44 LINE 0985 VERBOSE:	Deleting encryption certificate.
2026-07-25 03:33:44 LINE 0251 VERBOSE:	Deleting encryption certificate. Action plan Instance ID: 059b8363-c1cd-4860-86c2-abb4538fa6c3

まとめ

ADレス環境のAzure Localではデプロイユーザーのパスワードは有効期限なしに設定しておくか、有効期限を設ける場合はOSでのパスワード変更だけではなくドメイン環境同様にSet-AzureStackLCMUserPasswordも使ってECE Agentのパスワード変更も必要になるようです。
ADレス構成は柔軟な構成が組める魅力的な構成ですが、運用回りで気をつける点もありますので注意しましょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?