46 lines
2.1 KiB
PowerShell
46 lines
2.1 KiB
PowerShell
[CmdletBinding()]
|
|
param(
|
|
[string]$ConfigPath = 'C:\ProgramData\AWatch-rus\deployment-config.json',
|
|
[string]$ModulePath = 'C:\Program Files\AWatch-rus\windows\ActivityWatch.Windows.Common.psm1'
|
|
)
|
|
|
|
Set-StrictMode -Version Latest
|
|
$ErrorActionPreference = 'Stop'
|
|
|
|
Import-Module $ModulePath -Force
|
|
|
|
$config = Read-ActivityWatchDeploymentConfig -Path $ConfigPath
|
|
$stateRoot = [string]$config.paths.stateRoot
|
|
$launchScriptPath = if ($config.paths.PSObject.Properties.Name -contains 'launchScript') { [string]$config.paths.launchScript } else { Join-Path $stateRoot 'launch-watchers.ps1' }
|
|
$recoveryScriptPath = if ($config.paths.PSObject.Properties.Name -contains 'recoveryScript') { [string]$config.paths.recoveryScript } else { Join-Path $stateRoot 'recovery-loop.ps1' }
|
|
|
|
Write-ActivityWatchLaunchScript -Path $launchScriptPath -ConfigPath $ConfigPath
|
|
Write-ActivityWatchRecoveryScript -Path $recoveryScriptPath -ConfigPath $ConfigPath
|
|
Write-ActivityWatchHiddenPowerShellWrapper -Path (Get-ActivityWatchHiddenLauncherPath -ScriptPath $launchScriptPath) -ScriptPath $launchScriptPath -ConfigPath $ConfigPath
|
|
Write-ActivityWatchHiddenPowerShellWrapper -Path (Get-ActivityWatchHiddenLauncherPath -ScriptPath $recoveryScriptPath) -ScriptPath $recoveryScriptPath -ConfigPath $ConfigPath
|
|
|
|
$sessionRecords = Get-ActivityWatchSessionRecords
|
|
Stop-ActivityWatchProcessesInNonLiveSessions -SessionRecords $sessionRecords -Config $config
|
|
|
|
Get-CimInstance Win32_Process -ErrorAction SilentlyContinue |
|
|
Where-Object {
|
|
($_.Name -ieq 'powershell.exe' -or $_.Name -ieq 'pwsh.exe') -and
|
|
$_.CommandLine -match 'recovery-loop\.ps1'
|
|
} |
|
|
ForEach-Object {
|
|
Stop-Process -Id $_.ProcessId -Force -ErrorAction SilentlyContinue
|
|
}
|
|
|
|
Start-Sleep -Seconds 2
|
|
schtasks /Run /TN 'ActivityWatch Recovery' | Out-Null
|
|
Start-Sleep -Seconds 3
|
|
|
|
Write-Host 'QUSER'
|
|
quser
|
|
Write-Host '---'
|
|
Write-Host 'WATCHERS'
|
|
Get-Process aw-watcher-afk,aw-watcher-window -ErrorAction SilentlyContinue |
|
|
Select-Object Name, Id, SessionId, StartTime |
|
|
Sort-Object SessionId, Name |
|
|
Format-Table -AutoSize
|