Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $ignoredProcesses = @("1cv8.exe")
- # Получаем все отключенные сеансы
- $sessions = Get-RDUserSession -ConnectionBroker $env:COMPUTERNAME | Where-Object { $_.SessionState -eq "Disconnected" }
- foreach ($session in $sessions) {
- # Получаем все процессы и фильтруем их по ID сессии
- $processes = Get-Process | Where-Object { $_.SessionId -eq $session.SessionId }
- $hasImportantProcess = $false
- if ($processes) {
- foreach ($process in $processes) {
- if ($ignoredProcesses -contains $process.ProcessName) {
- $hasImportantProcess = $true
- break
- }
- }
- }
- if (-not $hasImportantProcess) {
- # Завершаем сеанс, если нет важных процессов
- Invoke-RDUserLogoff -HostServer $session.HostServer -UnifiedSessionId $session.UnifiedSessionId -Force
- Write-Host "Сеанс $($session.UserName) с ID $($session.SessionId) был завершен."
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment