Войти

Показать полную графическую версию : [решено] ограничение времени работы пользователей


katar_mind
16-12-2023, 10:55
привет всем, нужна помощь специалиста по powershell.
есть пара коллег, которые систематически перерабатывают, нужно технически ограничить время работы их доменных учеток на их доменных ПК, потому что по человечески они меня не понимают.
через AD штатными средствами не получается автоматизировать - блокировка учеток означает не только невозможность войти на ПК, но и невозможность воспользоваться OWA, т.е. перестает работать почта и прочие сервисы типа скайпа для бизнеса.

пользователи на ПК без прав локального администратора. нужен логон-скрипт на powershell, который, если поставить в автозагрузку с правами администратора, будет раз в 5 минут проверять текущее время. если оно раньше 8:30 и позже 18:30 - то делать логофф любому залогиненному пользователю - как локально зашедшему, так и через RDP на ПК. желательно, чтобы скрипт дал возможность сохранить документы в течение 2-3 минут. либо просто молча завершал сеанс и все - тоже будет отлично.

буду очень признателен за помощь.

DJ Mogarych
17-12-2023, 21:05
В свойствах учёток есть ограничение времени входа в систему. Надо не забыть также настроить принудительный выход из уже существующего сеанса, которое описано в этой же статье.

https://4sysops.com/archives/restrict-logon-time-for-active-directory-users/

katar_mind
17-12-2023, 22:25
В свойствах учёток есть ограничение времени входа в систему. Надо не забыть также настроить принудительный выход из уже существующего сеанса, которое описано в этой же статье.

https://4sysops.com/archives/restrict-logon-time-for-active-directory-users/



через AD штатными средствами не получается автоматизировать - блокировка учеток означает не только невозможность войти на ПК, но и невозможность воспользоваться OWA, т.е. перестает работать почта и прочие сервисы типа скайпа для бизнеса

DJ Mogarych
17-12-2023, 22:27
К блокировке учёток это не имеет отношения. Если вы уже использовали этот механизм, то нужно было описывать это точнее.

katar_mind
25-12-2023, 18:14
сорри, недостаток опыта.
буду признателен за помощь :)

katar_mind
25-12-2023, 19:03
chatgpt: поместить в автозагрузку юзеру, отредактировать путь и границы времени

# Путь к журналу событий для записи логов
$logPath = "C:\1\Log\Log.txt"

# Функция для записи логов
function Write-Log {
param (
[string]$message
)
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
$logEntry = "$timestamp - $message"
$logEntry | Out-File -Append -FilePath $logPath
}

# Проверка времени и выполнение логаута при необходимости
function Check-And-Logout {
$currentTime = Get-Date
$logoutStartTime = Get-Date "8:30 AM"
$logoutEndTime = Get-Date "6:30 PM"

if ($currentTime -lt $logoutStartTime -or $currentTime -ge $logoutEndTime) {
Write-Log "Performing logoff at $currentTime"
shutdown.exe /l /f
} else {
Write-Log "No logoff required at $currentTime"
}
}

# Запись начального статуса в лог
Write-Log "Script started"

# Бесконечный цикл с интервалом в 5 минут
while ($true) {
Start-Sleep -Seconds 300 # Подождать 5 минут
Check-And-Logout
}

DJ Mogarych
26-12-2023, 10:07
Бесконечный цикл в висящем процессе - так себе решение, лучше задачу сделать в планировщике.




© OSzone.net 2001-2012