This commit is contained in:
jeanotx32
2026-08-11 00:26:56 +02:00
commit 6f11b72cbb
43 changed files with 7175 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
# Installe l'agent Stream Control comme tâche planifiée Windows.
#
# L'agent doit s'exécuter dans la session interactive de l'utilisateur qui lance
# OBS : un service Windows classique tourne en session 0 et ne verrait pas OBS.
# On utilise donc une tâche « à l'ouverture de session » avec redémarrage auto.
#
# Usage (PowerShell administrateur) :
# .\windows-agent-task.ps1 -AgentDir 'C:\stream-control-agent' -RunAsUser 'VM01\obs'
param(
[string]$AgentDir = 'C:\stream-control-agent',
[string]$RunAsUser = "$env:USERDOMAIN\$env:USERNAME",
[string]$TaskName = 'StreamControlAgent'
)
$ErrorActionPreference = 'Stop'
$node = (Get-Command node).Source
$entry = Join-Path $AgentDir 'dist\index.js'
if (-not (Test-Path $entry)) {
throw "Agent introuvable : $entry — copie d'abord packages/agent (dist + node_modules) dans $AgentDir"
}
if (-not (Test-Path (Join-Path $AgentDir 'agent.config.json'))) {
Write-Warning "agent.config.json absent de $AgentDir : l'agent refusera de démarrer sans jeton."
}
$action = New-ScheduledTaskAction -Execute $node -Argument "`"$entry`"" -WorkingDirectory $AgentDir
$trigger = New-ScheduledTaskTrigger -AtLogOn -User $RunAsUser
$principal = New-ScheduledTaskPrincipal -UserId $RunAsUser -LogonType Interactive -RunLevel Limited
$settings = New-ScheduledTaskSettingsSet `
-AllowStartIfOnBatteries -DontStopIfGoingOnBatteries `
-RestartCount 999 -RestartInterval (New-TimeSpan -Minutes 1) `
-ExecutionTimeLimit ([TimeSpan]::Zero) -MultipleInstances IgnoreNew
Register-ScheduledTask -TaskName $TaskName -Action $action -Trigger $trigger `
-Principal $principal -Settings $settings -Force | Out-Null
Start-ScheduledTask -TaskName $TaskName
Write-Host "Tâche « $TaskName » installée et démarrée pour $RunAsUser."
Write-Host "Journal : Get-ScheduledTaskInfo -TaskName $TaskName"