FP
This commit is contained in:
41
deploy/windows-agent-task.ps1
Normal file
41
deploy/windows-agent-task.ps1
Normal 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"
|
||||
Reference in New Issue
Block a user