リモート デスクトップ サービス セットアップから RD セッション ホストをアンインストールする方法

リモートデスクトップサービス(RDS)のセットアップからRSDHホストを削除するのは、特にオフラインの場合や動作不良の場合、少々面倒な場合があります。サーバーマネージャーのGUIを使用することもできますが、PowerShellやデータベースの直接的な調整が、最終的に事態を収拾するケースも少なくありません。サーバーマネージャーからオフラインサーバーを削除しようとすると、「削除できませんでした」といったエラーに遭遇することがよくあります。さらに深刻なのは、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」という奇妙なエラーです。これは、サーバーが停止していたり​​、データベースのメタデータが適切にクリーンアップされていない場合、Windowsが混乱してしまうためです。そのため、クリーンアップするには、SQL ServerやWIDでいくつかの追加手順が必要になることが多く、複雑に思えますが、注意すれば実行可能です。基本的に、サーバーが停止していたり​​応答しない場合は、「削除」をクリックするだけでは不十分で、警告やエラーが表示され続けることになります。回避策は?RDCBデータベースに直接アクセスし、残っている情報をクリーンアップする必要があります。プロセス全体は、データベースへの接続、RDSH のエントリの検索、そしてそれらの手動削除で構成されます。Windows では、当然ながら必要以上に複雑にする必要があるため、データベースを操作する前に必ずバックアップしておくことが重要です。そうしないと、ファーム全体のセットアップが壊れてしまう可能性があります。データベースをクリーンアップしたら、サーバー マネージャーを再起動し、「Get-RDServer」などのコマンドで再確認してください。これで、ホストが本当に削除されたかどうかを確認できます。また、データベース接続については、WID の場合は「\\.\pipe\MICROSOFT##WID\tsql\query」に接続し、SQL Server の場合は適切なネットワーク リスナーに接続します。SQL データベースの操作は Microsoft によって公式にサポートされていませんが、頑固なオフライン ホストを削除するための一般的な手法であることを覚えておいてください。これはリスクを伴うため、バックアップを必ず取得し、SQL クエリの使い方を理解しておいてください。また、`rds. Server`、`rds. RoleRdsh` などのテーブルを再確認し、特定のサーバーIDを削除してゴーストホストを消去してください。これでサーバーはファームから削除され、通常の RDS 管理や移行計画を進めることができます。また、クリーンアップ後に再起動すると問題が解決する場合もあります。なぜ効果があるのか​​は分かりませんが、設定によっては有効です。簡単にまとめると、多くの人が最終的に行う手順は次のとおりです。

  • RDCB SQLデータベースをバックアップしてください。当然ながら、Windowsではバックアップが難しくなります。
  • データベース (WID または SQL Server) に接続します。
  • `rds. Server` と `rds. RoleRdsh` 内のエントリを見つけます。
  • 次のようなT-SQLコマンドで特定のサーバーレコードを削除します。delete from rds. RoleRdsh where ServerID='X'; delete from rds. Server where Id='X';
  • サーバー マネージャーを再起動し、` Get-RDServer `で確認します。

デプロイメントからオフライン RDS ホストを削除する方法

方法 1: SQL Management Studio を使用してサーバー メタデータを削除する

ホストが停止していて通常の方法で削除できない場合、これが最も確実な方法です。RDCBデータベースからサーバーのデータを直接削除することで、すべての参照が消去され、今後ホストが見つからないというエラーや警告が表示されるのを防ぎます。サーバーがオフラインまたは障害状態の場合、コンソールにエラーまたは警告が表示されます。

  • まず、RDCBデータベースに接続します。WIDインスタンスの場合は、を使用します\\.\pipe\MICROSOFT##WID\tsql\query
  • SQL Server の場合は、おそらく SQL Management Studio 経由で、RDCB データベースをホストする SQL Server インスタンスに接続します。
  • 続行する前に、RDCBデータベースをバックアップしてください。これは破壊的な変更なので、非常に重要です。
  • ` rds. Server`テーブルでホストの ID を見つけ、` rds. RoleRdsh`と ` rds. Server`からそのレコードを削除します。T-SQL の例:
    use RDCms; delete from rds. RoleRdsh where ServerID='3'; delete from rds. Server where Id='3';
  • データベースを閉じ、サーバーマネージャーを再起動してサーバーリストを更新してください。ゴーストホストは消え、警告も表示されなくなります。

方法2: PowerShellを使用して削除を一覧表示して確認する

データベースのクリーンアップが完了したら、Get-RDServerPowerShellで実行できます。展開内の現在のサーバーがすべて一覧表示されます。すべてがうまくいけば、オフラインサーバーは表示されなくなります。これは修正というよりはチェックですが、すべてが正しくクリアされているかどうかを確認するのに便利です。

  • PowerShell を管理者として開きます。
  • 実行しGet-RDServerてホスト名を確認してください。まだリストに表示されている場合は、何か問題が発生している可能性があります。更新が必要だったか、データベースが適切にクリーンアップされていない可能性があります。

ここでの肝心な点は、メタデータを直接削除することです。少し面倒ですが、サーバーがGUIからスムーズに移行できない場合に、これが唯一の方法となることもあります。バックアップを忘れないようにしてください。GUIとは異なり、SQLでは間違ったエントリを削除すると、簡単にすべてが台無しになってしまうからです。

これで、オフラインホストに対して何をすべきか、より明確なイメージが得られたかと思います。分かりやすいGUI管理からは少し離れますが、少なくともほとんどの場合はうまく機能します。