WindowsのRDS(リモートデスクトップサービス)をインストール時に、
WID(Windows Internal Database)が起動せずにインストールが失敗するエラーがありました。イベントログにWIDが起動しないエラーが出ていました。
原因と改善方法を紹介します。
環境・前提条件
- 既存でADがある環境で
- 新規にRDSサーバー(RD 接続ブローカー、RD Web、RDセッションホスト)をインストール
- RDSサーバーはAzureのWindows Server 2019
の時に発生しました。
結論、WID起動サービスユーザーにGPOで「サービスとしてログオン」権限が無かった
NT SERVICE\MSSQL$MICROSOFT##WID
ユーザーが、「サービスとしてのログオン」権限が無いことはわかりました。
「サービスとしてのログオン権限」は、ローカルグループポリシー上で、通常は
NT SERVICE\ALL SERVICES
グループが含まれており、このグループの中に「NT SERVICE\MSSQL$MICROSOFT##WID」ユーザーが含まれているんだと思います。
もしも、「サービスとしてのログオン」をカスタマイズし、「NT SERVICE\ALL SERVICES」の権限を削除してしまっていたら今回のエラーが発生すると思います。
原因はわかったとして、回避方法は
- GPO(もしくはローカルポリシー)の「ユーザー権利の割り当て」「サービスとしてログオン」に「NT SERVICE\ALL SERVICES」を割り当てる
- もしくは上記設定変更が許されないGPOからコンピュータを除外する
といった方法があります。
「NT SERVICE\ALL SERVICES」は一般のグループ・ユーザーとは異なりますので、一度ポリシーから消してしまうと再度追加するのが難しい場合があり注意が必要そうです。
参考:
参考までに、以下の回避方法を紹介します。
実際、試してみましたが、実現できました。
ポイントとしましては、「NT SERVICE\MSSQL$MICROSOFT##WID」が作成されるのは、RDSをインストールしてる最中のようですので(RDS接続ブローカーのインストールにWIDもインストールされる)、RDSインストール中のサービスとしてのログオンエラーリトライ中に実施する必要があります。
1,ローカルグループ(たとえば[WID])を作成する
2,以下のコマンドで「NT SERVICE\MSSQL$MICROSOFT##WID」の権限をWIDグループに与える
net localgroup WID "NT SERVICE\MSSQL$MICROSOFT##WID" /add
3,WIDグループを[サービスとしてログオン]で追加するローカルグループを「グループポリシーで設定」する場合ですが、[参照]ボタンでグループを検索したりせず、直接文字列[WID]だけを入れるようにしてください。そうすることで、適用させるコンピュータオブジェクトのローカルグループを指定したことになります。
ActiveDirectoryのグループポリシーにNT SERVICE¥MSSQLSERVERに関連するユーザが追加できない