привет всем, нужна помощь специалиста по powershell.
есть пара коллег, которые систематически перерабатывают, нужно технически ограничить время работы их доменных учеток на их доменных ПК, потому что по человечески они меня не понимают.
через AD штатными средствами не получается автоматизировать - блокировка учеток означает не только невозможность войти на ПК, но и невозможность воспользоваться OWA, т.е. перестает работать почта и прочие сервисы типа скайпа для бизнеса.
пользователи на ПК без прав локального администратора. нужен логон-скрипт на powershell, который, если поставить в автозагрузку с правами администратора, будет раз в 5 минут проверять текущее время. если оно раньше 8:30 и позже 18:30 - то делать логофф любому залогиненному пользователю - как локально зашедшему, так и через RDP на ПК. желательно, чтобы скрипт дал возможность сохранить документы в течение 2-3 минут. либо просто молча завершал сеанс и все - тоже будет отлично.
буду очень признателен за помощь.
PowerShell - [решено] ограничение времени работы пользователей
-
DJ Mogarych
Re: PowerShell - [решено] ограничение времени работы пользователей
В свойствах учёток есть ограничение времени входа в систему. Надо не забыть также настроить принудительный выход из уже существующего сеанса, которое описано в этой же статье.
https://4sysops.com/archives/restric...rectory-users/
-
katar_mind
Re: PowerShell - [решено] ограничение времени работы пользователей
Цитата DJ Mogarych:
В свойствах учёток есть ограничение времени входа в систему. Надо не забыть также настроить принудительный выход из уже существующего сеанса, которое описано в этой же статье.
через AD штатными средствами не получается автоматизировать - блокировка учеток означает не только невозможность войти на ПК, но и невозможность воспользоваться OWA, т.е. перестает работать почта и прочие сервисы типа скайпа для бизнеса
В свойствах учёток есть ограничение времени входа в систему. Надо не забыть также настроить принудительный выход из уже существующего сеанса, которое описано в этой же статье.
https://4sysops.com/archives/restric...rectory-users/
через AD штатными средствами не получается автоматизировать - блокировка учеток означает не только невозможность войти на ПК, но и невозможность воспользоваться OWA, т.е. перестает работать почта и прочие сервисы типа скайпа для бизнеса
-
DJ Mogarych
Re: PowerShell - [решено] ограничение времени работы пользователей
К блокировке учёток это не имеет отношения. Если вы уже использовали этот механизм, то нужно было описывать это точнее.
-
katar_mind
Re: PowerShell - [решено] ограничение времени работы пользователей
сорри, недостаток опыта.
буду признателен за помощь
буду признателен за помощь

-
katar_mind
Re: PowerShell - [решено] ограничение времени работы пользователей
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
}
# Путь к журналу событий для записи логов
$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
Re: PowerShell - [решено] ограничение времени работы пользователей
Бесконечный цикл в висящем процессе - так себе решение, лучше задачу сделать в планировщике.