Set-ExecutionPolicy RemoteSigned -Scope CurrentUser New-Service -Name "ClokeyCpuMonitor" -BinaryPathName "powershell.exe -ExecutionPolicy Bypass -File C:\Payroll27-64\clokey_cpu.ps1" -Description "Watch process ClokeyEngine CPU usage" -StartupType Automatic sc.exe config "ClokeyCpuMonitor" start= delayed-auto #New script clokey_cpu.ps1 $processName = "ClokeyEngine" $cpuThreshold = 10 $iniFilePath = "C:\Payroll27-64\ClokeyEngine.ini" while ($true) { $process = Get-WmiObject -Query "SELECT PercentProcessorTime FROM Win32_PerfFormattedData_PerfProc_Process WHERE Name='$processName'" if ($process) { $cpuUsage = $process.PercentProcessorTime $cpuUsageDecimal = "{0:N2}" -f $cpuUsage # Affiche $cpuUsage avec 2 décimales Write-Host "Utilisation du CPU par $processName : $cpuUsageDecimal%" # Récupérer l'heure actuelle $currentTime = Get-Date $currentTimeFormatted = $currentTime.ToString("yyyy-MM-dd HH:mm:ss") # Construire les lignes à écrire dans le fichier INI $line1 = "[LastCpuCheck]" $line2 = "`nTimeCheck = $currentTimeFormatted" $line3 = "CpuUsage = $cpuUsageDecimal" # Écrire les lignes dans le fichier INI Set-Content -Path $iniFilePath -Value $line1 -NoNewline Add-Content -Path $iniFilePath -Value $line2 Add-Content -Path $iniFilePath -Value $line3 if ($cpuUsage -gt $cpuThreshold) { Write-Host "High CPU usage detected. Process $processName will stop." Stop-Process -Name $processName break } } else { Write-Host "Process $processName is not in use." break } # Attendre 1 heure avant de vérifier à nouveau Start-Sleep -Seconds 60 }