mirror of
https://github.com/Andre-Bzk/SunshineDisplaySwitch.git
synced 2026-11-15 09:33:11 +01:00
feat: Logon-Trigger für MoonlightTeardown als Fallback nach Shutdown
This commit is contained in:
@@ -22,9 +22,11 @@ Sunshine läuft als Windows-Dienst (Session 0 / SYSTEM-Kontext). `DisplaySwitch.
|
||||
|
||||
Zur Kontrolle:
|
||||
```
|
||||
schtasks /query /tn MoonlightTeardown /fo list
|
||||
schtasks /query /tn MoonlightTeardown /fo list /v
|
||||
```
|
||||
|
||||
Unter `Trigger` sollten zwei Einträge erscheinen: `At log on` (Fallback nach Shutdown) und der Task ist zusätzlich jederzeit manuell aufrufbar — beide Mechanismen nutzen dieselbe Aktion.
|
||||
|
||||
### 2. Sunshine konfigurieren
|
||||
|
||||
In der Sunshine Web-UI unter **Configuration > General**:
|
||||
@@ -41,11 +43,16 @@ Stream startet
|
||||
└─> idd_an.bat
|
||||
└─> DisplaySwitch.exe /external (virtuellen Monitor aktivieren)
|
||||
|
||||
Stream endet
|
||||
Stream endet (normal)
|
||||
└─> idd_aus.bat [läuft in Session 0]
|
||||
└─> Start-ScheduledTask 'MoonlightTeardown'
|
||||
└─> Task Scheduler [InteractiveToken = Benutzersession]
|
||||
└─> DisplaySwitch.exe /internal (physischen Monitor reaktivieren)
|
||||
|
||||
Stream endet durch Shutdown (Fallback)
|
||||
└─> PC bootet neu → User-Login
|
||||
└─> MoonlightTeardown [Logon-Trigger]
|
||||
└─> DisplaySwitch.exe /internal (physischen Monitor reaktivieren)
|
||||
```
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@ if %errorLevel% neq 0 (
|
||||
REM Angemeldeten Benutzer ermitteln (nicht SYSTEM)
|
||||
for /f "tokens=*" %%u in ('powershell -NoProfile -Command "(Get-WMIObject Win32_ComputerSystem).Username"') do set CURRENT_USER=%%u
|
||||
|
||||
powershell.exe -ExecutionPolicy Bypass -NonInteractive -Command "$action = New-ScheduledTaskAction -Execute 'DisplaySwitch.exe' -Argument '/internal'; $principal = New-ScheduledTaskPrincipal -UserId '%CURRENT_USER%' -LogonType Interactive -RunLevel Highest; $settings = New-ScheduledTaskSettingsSet -MultipleInstances IgnoreNew -ExecutionTimeLimit (New-TimeSpan -Minutes 1); Register-ScheduledTask -TaskName 'MoonlightTeardown' -Action $action -Principal $principal -Settings $settings -Force; Write-Host 'Task MoonlightTeardown erfolgreich registriert.'"
|
||||
powershell.exe -ExecutionPolicy Bypass -NonInteractive -Command "$action = New-ScheduledTaskAction -Execute 'DisplaySwitch.exe' -Argument '/internal'; $principal = New-ScheduledTaskPrincipal -UserId '%CURRENT_USER%' -LogonType Interactive -RunLevel Highest; $settings = New-ScheduledTaskSettingsSet -MultipleInstances IgnoreNew -ExecutionTimeLimit (New-TimeSpan -Minutes 1); $trigger = New-ScheduledTaskTrigger -AtLogOn -User '%CURRENT_USER%'; Register-ScheduledTask -TaskName 'MoonlightTeardown' -Action $action -Principal $principal -Settings $settings -Trigger $trigger -Force; Write-Host 'Task MoonlightTeardown erfolgreich registriert.'"
|
||||
|
||||
echo.
|
||||
echo Fertig. Dieses Fenster kann geschlossen werden.
|
||||
|
||||
Reference in New Issue
Block a user