Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

【Windows Server】RD Web Access経由で期限切れのパスワードを変更する方法

本記事では、Windows Server 2022/2019/2016/2012 R2のリモートデスクトップサービス(RDS)サーバーにRD Web Accessロールを導入した環境で、リモートユーザーが特別なWebフォームを使って期限切れのパスワードを変更できるようにする手順を解説します。

リモートデスクトップセッションから期限切れパスワードを変更できない問題

Windows Server 2012 R2以降では、リモートデスクトップ接続に対してNLA(ネットワークレベル認証)がデフォルトで有効になっています。NLAは、パスワードの有効期限が切れているユーザーや、userAccountControl属性で「ユーザーは次回ログオン時にパスワード変更が必要」オプションが有効になっているユーザーによるRDP/RDSホストへの接続をブロックします。NLAを無効化することも可能ですが(ref1、ref2)、セキュリティの観点から推奨されません。期限切れのパスワードを持つユーザーアカウントでRDSHサーバー(Remote Desktop Session Host)に接続しようとすると、次のエラーメッセージが表示されます。

An authentication error has occurred.
The Local Security Authority cannot be contacted
Remote computer: lonSrvRDS1
This could be due to an expired password
Please update your password if it has expired.

【Windows Server】RD Web Access経由で期限切れのパスワードを変更する方法

NLAを使用している場合、RDSインフラ以外に企業ネットワークへアクセスする手段がないリモートユーザーは、期限切れのパスワードを変更できません。もちろん、ユーザーに事前にRDPセッション内でパスワードを変更してもらったり、「対話型ログオン: パスワードの有効期限が切れる前に変更を促す」GPOオプション(RDSホストの コンピューターの構成 → Windowsの設定 → ローカルポリシー → セキュリティオプション)を有効化したりする方法もありますが、ユーザーのうっかり忘れにより必ずしも機能するとは限りません。

Windows Server 2012 R2以降では、リモートユーザーはRemote Desktop Web Accessロールがインストールされたサーバー上の特別なWebページから、現在のパスワードや期限切れのパスワードを手動でリセットできます。パスワードを変更するには、ユーザーがRD Web AccessのサインインWebページで認証を行い、専用のaspxフォームを使ってパスワードを変更します。

: Windows Server 2003の時代には、ドメインユーザーは小規模なWebアプリケーションIISADMPWD(公式サポート外)を使って期限切れのパスワードを変更できました。

RD Web Accessホストでリモートユーザーによる期限切れパスワードのリセットを許可する方法

リモートからのパスワード変更機能は、Remote Desktop Web Access(RD Web Access)ロールがインストールされたサーバーで利用できますが、この機能はデフォルトで無効になっています。

RDSサーバーファームを展開している場合は、RD接続ブローカーホスト上の展開構成に接続することで、RDS-WEB-Accessロールがインストールされたサーバーを特定できます。

Get-RDServer -ConnectionBroker rdcb1.woshub.com| where {$_.roles -eq "RDS-WEB-ACCESS"}

【Windows Server】RD Web Access経由で期限切れのパスワードを変更する方法

パスワードの変更には、C:\Windows\Web\RDWeb\Pages\en-USにあるpassword.aspxファイル内のスクリプトを使用します。

言語パックなしのローカライズ版Windows Serverを使用している場合、password.aspxファイルのパスは異なり、以下のようになります。

  • C:\Windows\Web\RDWeb\Pages\fr-FR – フランス語版Windows Serverの場合
  • C:\Windows\Web\RDWeb\Pages\de-DE – ドイツ語版の場合

パスワード変更オプションを有効にするには、RD Web Accessロールが設定されたサーバーでIISマネージャーコンソール(inetmgr)を起動します。[サーバー名] → サイト → Default Web Site → RDWeb → Pagesへ移動し、アプリケーション設定セクションを開きます。

【Windows Server】RD Web Access経由で期限切れのパスワードを変更する方法

右ペインでPasswordChangeEnabledパラメーターを見つけ、値をtrueに変更します。

【Windows Server】RD Web Access経由で期限切れのパスワードを変更する方法

また、IIS構成ファイル「C:\Windows\Web\RDWeb\Pages\Web.config」でPasswordChangeEnabledパラメーターをTrueに設定する方法もあります。

【Windows Server】RD Web Access経由で期限切れのパスワードを変更する方法

PasswordChangeEnabledパラメーターにより、Active DirectoryユーザーはRD Web Accessポータルを通じて期限切れのパスワードを変更できるようになります。なお、このオプションでは、ワークグループ環境(ドメイン非参加)におけるRDSホスト上のローカルユーザーのパスワード変更はできません。

IIS Webサーバーをコンソールから再起動するか、次のコマンドを実行します。

iisreset

【Windows Server】RD Web Access経由で期限切れのパスワードを変更する方法

パスワード変更ページが利用可能か確認するには、次のURLにアクセスします。

https://lonSrvRDS1/RDWeb/Pages/en-US/password.aspx

RD Web Accessには有効なSSL証明書がインストールされている必要があります。IISでは無料のLet's Encrypt証明書も利用できます。

ユーザー名、旧パスワード、新パスワード(確認用含め2回)を入力します。

【Windows Server】RD Web Access経由で期限切れのパスワードを変更する方法

パスワードの変更に成功すると、次のメッセージが表示されます。

Your password has been successfully changed.

【Windows Server】RD Web Access経由で期限切れのパスワードを変更する方法

OKをクリックすると、ユーザーはRD Webのログインページへリダイレクトされます。入力したパスワードがドメインのパスワードポリシー要件を満たしていない場合は、警告メッセージが表示されます。

Your new password does not meet the length, complexity, or history requirements of your domain. Try choosing a different new password.

【Windows Server】RD Web Access経由で期限切れのパスワードを変更する方法

このパスワード変更方法は、RDWAサーバーのIISでフォーム認証が有効になっている場合にのみ利用できます。Windows認証方式が使われている場合、RD Webフォームからパスワードを変更することはできません。

サポートされる認証方式の一覧と変更は、IISマネージャーコンソールで行えます。右ペインで「サイト → Default Web Site → RDWeb → Pages」を選択し、フォーム認証を選びます。

【Windows Server】RD Web Access経由で期限切れのパスワードを変更する方法

これで、期限切れのパスワードでRD Web Accessサーバーに接続しようとすると、ユーザーは自動的にpassword.aspxページへリダイレクトされ、パスワードの変更を促されます。

【Windows Server】RD Web Access経由で期限切れのパスワードを変更する方法

ヒント: Windows Server 2008 R2でRD Web Accessロールを使用している場合、特別な更新プログラムKB2648402をインストールすれば、期限切れのパスワードを変更できるようになります。

RD Web Accessログインフォームへのパスワード変更リンクの追加

パスワード変更フォームへのリンクを、Remote Desktop Web Accessのサインインフォームに直接追加することもできます。これにより、ユーザーはパスワードの有効期限を待たずに、いつでも任意のタイミングでパスワードを変更できるようになります。

RDWebのサインインページにpassword.aspxファイルへのリンクを挿入します(編集前に必ずlogin.aspxファイルのバックアップコピーを作成してください)。

  1. RDWebサーバー上で、ファイルC:\Windows\Web\RDWeb\Pages\en-US\login.aspxを見つけ、任意のテキストエディター(Notepad++がおすすめ)で開きます。
  2. 429行目へ移動します(Windows Server 2022では、HTMLブロック <tr id="trPasswordExpiredNoChange" <%=strErrorMessageRowStyle%> > … </tr> の直後にあります)。そこに次のコードを貼り付けます。
  3. <!-- Begin: Add Change Password Link --><br /> <tr><br /> <td align="right"> <a href="password.aspx" title="Change AD User Password">Click here </a>to change your password.<br /> </td><br /> </tr><br /> <!-- End: Add Change Password Link --> 【Windows Server】RD Web Access経由で期限切れのパスワードを変更する方法
  4. login.aspxファイルの変更を保存し、IIS Webサイトを再起動します。その後、RD Webサーバーのサインインページにパスワード変更ページへのリンクが表示されていることを確認します。

【Windows Server】RD Web Access経由で期限切れのパスワードを変更する方法

これで、リモートユーザーは管理者の介入なしに、RDSサーバー上で期限切れのパスワードを自分で変更できるようになります。ただし、ドメインのキャッシュされた資格情報を使ってローカルコンピューターにログオンしている場合、RDWebAccess経由でActive Directoryのパスワードを変更してもキャッシュされた資格情報は更新されない点に注意してください。

  1. Windows 10でリモートデスクトップ接続を設定する方法【初心者向けガイド】

    物理的に離れた場所にあるパソコンへリモートアクセスすることは、今では珍しいことではありません。この機能によって仕事の効率と生産性が向上し、多くの企業でも積極的に導入が進められています。ただし、リモートアクセス接続の安全性とセキュリティを確保することが非常に重要です。本記事では、Windows 10でリモートデスクトップを設定する具体的な手順を詳しく解説します。 Windows 10でリモートデスクトップアクセスを設定するには? リモートデスクトップアクセス機能は、MicrosoftがWindows OSに標準搭載しているユーティリティです。ただし、この機能はWindowsのProfession

  2. Windows 11でDNSサーバーを変更する方法【設定アプリ・コントロールパネル対応】

    Windows 11のPCやノートパソコンでDNS設定を見直すことは、プライバシーを強化したい方にとって重要な作業です。Webページを開くときも、アプリがバックグラウンドでサーバーに接続するときも、DNSを変更しておけばPC上のすべてのインターネット通信を保護できます。この記事では、初心者の方に向けて、Windows 11でDNSサーバーを変更する方法を2つの手順で詳しく解説します。 DNSとは?なぜ変更する必要があるのか? 多くの人にとって、インターネットへの接続はスイッチを入れるように簡単なものになっています。面倒な手順を踏むことなく、数秒でデバイスをネットワークにつなげられるのは、D