mirror of
https://github.com/Andre-Bzk/SunshineDisplaySwitch.git
synced 2026-11-15 15:43:10 +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:
|
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
|
### 2. Sunshine konfigurieren
|
||||||
|
|
||||||
In der Sunshine Web-UI unter **Configuration > General**:
|
In der Sunshine Web-UI unter **Configuration > General**:
|
||||||
@@ -41,11 +43,16 @@ Stream startet
|
|||||||
└─> idd_an.bat
|
└─> idd_an.bat
|
||||||
└─> DisplaySwitch.exe /external (virtuellen Monitor aktivieren)
|
└─> DisplaySwitch.exe /external (virtuellen Monitor aktivieren)
|
||||||
|
|
||||||
Stream endet
|
Stream endet (normal)
|
||||||
└─> idd_aus.bat [läuft in Session 0]
|
└─> idd_aus.bat [läuft in Session 0]
|
||||||
└─> Start-ScheduledTask 'MoonlightTeardown'
|
└─> Start-ScheduledTask 'MoonlightTeardown'
|
||||||
└─> Task Scheduler [InteractiveToken = Benutzersession]
|
└─> Task Scheduler [InteractiveToken = Benutzersession]
|
||||||
└─> DisplaySwitch.exe /internal (physischen Monitor reaktivieren)
|
└─> 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
|
## Voraussetzungen
|
||||||
|
|||||||
+1
-1
@@ -9,7 +9,7 @@ if %errorLevel% neq 0 (
|
|||||||
REM Angemeldeten Benutzer ermitteln (nicht SYSTEM)
|
REM Angemeldeten Benutzer ermitteln (nicht SYSTEM)
|
||||||
for /f "tokens=*" %%u in ('powershell -NoProfile -Command "(Get-WMIObject Win32_ComputerSystem).Username"') do set CURRENT_USER=%%u
|
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.
|
||||||
echo Fertig. Dieses Fenster kann geschlossen werden.
|
echo Fertig. Dieses Fenster kann geschlossen werden.
|
||||||
|
|||||||
Reference in New Issue
Block a user