fix: bound HWPOD desktop apply probes
This commit is contained in:
@@ -609,14 +609,20 @@ $versionOut = @(& $probe @launcherArgs -c "import sys;import tkinter;print(sys.v
|
||||
if ($LASTEXITCODE -ne 0 -or (($versionOut -join "\`n") -notlike "*$($payload.expectedVersionPrefix)*")) { throw "Python version mismatch: $($versionOut -join ' | ')" }
|
||||
New-Item -ItemType Directory -Force -Path $root, (Split-Path -Parent $configPath), (Split-Path -Parent $credentialPath), (Split-Path -Parent $logPath) | Out-Null
|
||||
$legacyStopped = @()
|
||||
$legacyTasksStillEnabled = @()
|
||||
foreach ($taskName in $legacyTaskNames) {
|
||||
Stop-ScheduledTask -TaskName $taskName -ErrorAction SilentlyContinue
|
||||
Disable-ScheduledTask -TaskName $taskName -ErrorAction SilentlyContinue | Out-Null
|
||||
$null = & schtasks.exe /Query /TN $taskName 2>$null
|
||||
if ($LASTEXITCODE -eq 0) {
|
||||
$null = & schtasks.exe /End /TN $taskName 2>$null
|
||||
$null = & schtasks.exe /Change /TN $taskName /Disable 2>$null
|
||||
if ($LASTEXITCODE -ne 0) { $legacyTasksStillEnabled += $taskName }
|
||||
}
|
||||
}
|
||||
foreach ($runKey in $legacyRunKeyNames) {
|
||||
Remove-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Run' -Name $runKey -ErrorAction SilentlyContinue
|
||||
}
|
||||
$legacy = @(Get-CimInstance Win32_Process | Where-Object {
|
||||
$allBefore = @(Get-CimInstance Win32_Process)
|
||||
$legacy = @($allBefore | Where-Object {
|
||||
$commandLine = [string]$_.CommandLine
|
||||
$legacyProcessPatterns | Where-Object { $commandLine.Contains($_) } | Select-Object -First 1
|
||||
})
|
||||
@@ -625,7 +631,7 @@ foreach ($proc in $legacy) {
|
||||
$legacyStopped += [int]$proc.ProcessId
|
||||
}
|
||||
Start-Sleep -Milliseconds 500
|
||||
$old = @(Get-CimInstance Win32_Process | Where-Object { $_.CommandLine -and $_.CommandLine.Contains($scriptPath) })
|
||||
$old = @($allBefore | Where-Object { $_.CommandLine -and $_.CommandLine.Contains($scriptPath) })
|
||||
foreach ($proc in $old) { Stop-Process -Id $proc.ProcessId -Force -ErrorAction SilentlyContinue }
|
||||
Start-Sleep -Milliseconds 500
|
||||
[IO.File]::WriteAllBytes($scriptPath, [Convert]::FromBase64String([string]$payload.artifactBase64))
|
||||
@@ -644,11 +650,11 @@ $stdoutPath = $logPath + '.stdout'
|
||||
$stderrPath = $logPath + '.stderr'
|
||||
Start-Process -FilePath $gui -ArgumentList @($launcherArgs + @($scriptPath)) -WorkingDirectory $root -RedirectStandardOutput $stdoutPath -RedirectStandardError $stderrPath
|
||||
Start-Sleep -Seconds 3
|
||||
$processes = @(Get-CimInstance Win32_Process | Where-Object { $_.Name -like 'python*.exe' -and $_.CommandLine -and $_.CommandLine.Contains($scriptPath) })
|
||||
$allAfter = @(Get-CimInstance Win32_Process)
|
||||
$processes = @($allAfter | Where-Object { $_.Name -like 'python*.exe' -and $_.CommandLine -and $_.CommandLine.Contains($scriptPath) })
|
||||
$explorerSessions = @(Get-Process explorer -ErrorAction SilentlyContinue | Select-Object -ExpandProperty SessionId -Unique)
|
||||
$interactive = @($processes | Where-Object { $explorerSessions -contains $_.SessionId })
|
||||
$legacyTasksStillEnabled = @($legacyTaskNames | Where-Object { $task = Get-ScheduledTask -TaskName $_ -ErrorAction SilentlyContinue; $task -and $task.Settings.Enabled })
|
||||
$legacyProcessesRemaining = @(Get-CimInstance Win32_Process | Where-Object {
|
||||
$legacyProcessesRemaining = @($allAfter | Where-Object {
|
||||
$commandLine = [string]$_.CommandLine
|
||||
$legacyProcessPatterns | Where-Object { $commandLine.Contains($_) } | Select-Object -First 1
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user