Windows RDSホスト 管理ダッシュボード。RDP セッション管理とサーバー電源操作をブラウザから行える Blazor フルスタック Web アプリケーションです。
本アプリケーションは LAN 内での使用のみを想定しています。
認証・認可・通信の暗号化など、セキュリティに関する考慮は一切行っていません。 アクセスできる者はサーバーのシャットダウンや他ユーザーのセッションログオフを含む、すべての操作を無制限に実行できます。
インターネットや社外ネットワークへの公開は絶対に行わないでください。
- RDP セッション一覧の表示(ユーザー名・接続状態・ログイン時刻・アイドル時間)
- 指定セッションのログオフ
- RDP サービス(TermService)の再起動
- 即時シャットダウン
- 即時再起動
- 予約シャットダウン(2時間後に自動実行)
- 予約シャットダウンのキャンセル
- SignalR によるリアルタイム通信(5 秒ポーリング)
- 接続断時の自動再接続(指数バックオフ:0s / 2s / 10s / 30s / 1m / 2m / 5m)
- OS: Windows のみ(Linux・macOS 非対応)
- ランタイム: .NET 10
- 動作形態: Windows Service として動作
| 技術 | 用途 |
|---|---|
| Blazor WebAssembly + ASP.NET Core | フロントエンド UI / サーバーホスト |
| SignalR | リアルタイム双方向通信 |
| Cassia | RDP / ターミナルサービス セッション管理 |
| ProcessX | 電源コマンド実行 |
| ConsoleAppFramework | CLI インストーラーのコマンド定義 |
| Windows Event Log | 本番環境ロギング |
src/
├── Lucia.Server/
│ ├── Lucia.Server/ # ASP.NET Core ホスト・SignalR Hub・バックグラウンドサービス
│ └── Lucia.Server.Client/ # Blazor WebAssembly クライアント UI・Hub クライアント
├── Lucia.Services/ # ビジネスロジック(セッション・電源・タイマー管理)
├── Lucia.Models/ # ドメインモデル(SessionInfo・SessionState 等)
├── LuciaServer.Shared/ # Hub インターフェース(ISessionHub・IPowerHub 等)
└── Lucia.Installer/ # CLI インストーラー(Lucia.Installer.exe)
| プロジェクト | 役割 |
|---|---|
Lucia.Server |
ASP.NET Core ホスト、SignalR Hub、バックグラウンドサービス |
Lucia.Server.Client |
Blazor WebAssembly クライアント UI、Hub クライアント |
Lucia.Services |
ビジネスロジック(セッション・電源・タイマー管理) |
Lucia.Models |
ドメインモデル(SessionInfo、SessionState 等) |
LuciaServer.Shared |
Hub インターフェース(ISessionHub、IPowerHub 等) |
Lucia.Installer |
CLI インストーラー(Windows Service 登録・FW 設定・レジストリ管理) |
Razor コンポーネント
↓ (SignalR)
Hub クライアント (SessionHubClient / PowerHubClient)
↓ (Hub メソッド呼び出し)
サーバー Hub (SessionHub / PowerHub)
↓ (DI)
サービス (SessionService / PowerService)
↓ (Windows API)
Windows OS (Cassia で RDP セッション / ProcessX で電源コマンド)
FetchWorker(バックグラウンドサービス)がサーバー側で 5 秒ごとにセッション情報と予約シャットダウン状態を取得し、接続中のすべてのクライアントへ SignalR でブロードキャストします。
- Windows 10 / 11
- .NET 10 SDK
# ビルド
dotnet build
# 開発モードで実行
dotnet run --project src/Lucia.Server/Lucia.Server/Lucia.Server.csprojブラウザで https://localhost:5001(または起動時に表示される URL)にアクセスします。
dotnet publish src/Lucia.Installer/Lucia.Installer.csproj --configuration Releasesrc/Lucia.Installer/bin/Release/net10.0-windows/win-x64/publish/Lucia.Installer.exe が生成されます。ダブルクリックでインストールできます。
詳細は ユーザーガイド を参照してください。
本プロジェクトが使用しているサードパーティライブラリのライセンスについては THIRD_PARTY_LICENSES.md を参照してください。
