Ограничение времени работы с клиентским компьютером на Windows в день

Вопрос или проблема

Я знаю, благодаря функции “Часы входа”, что можно контролировать, когда пользователь может войти в Windows. Я также знаю, что существует способ автоматически отключать их, когда они достигают этих лимитов.

То, что я ищу, немного отличается, так как я хочу разрешить входы в указанные часы до максимального количества раз. Сценарий здесь — школа с ограниченным количеством вычислительных ресурсов, которые они хотят распределить среди всех студентов.

Предположим, у нас есть пользователь по имени Джейн, с установленными часами входа с 08:00 до 21:00, с групповыми политиками, установленными для автоматического отключения вне этих часов. Я хочу разрешить Джейн использовать компьютер, скажем, максимум два часа в течение ее разрешенных часов входа.

Если это невозможно сделать с помощью Windows Server, возможно, кто-то поделится успешным опытом, который у них был с программным обеспечением сторонних производителей, которое работало для них, желательно таким, которое не требует установки на каждом клиенте?

Единственный нативный способ, который я могу придумать, это настроить запланированное задание, которое запускается при входе. Вот шаги, которые я бы использовал:

Создать базовую задачу (Имя = что угодно)
Триггер: Когда я вхожу в систему
Действие: Запустить программу
Программа/скрипт: shutdown.exe, Аргументы: /l /f
Нажмите "Открыть диалоговое окно свойств..." перед тем, как нажать "Готово"
Нажмите "Изменить пользователя или группу"
Введите "Пользователи" или введите или найдите имя пользователя, к которому вы хотите это применить.
Нажмите "Проверить имена", чтобы удостовериться, что вы не дописали ошибку.
Нажмите "OK"
Перейдите на вкладку "Триггеры" и отредактируйте триггер
Измените его на "Любой пользователь" или нажмите "Изменить пользователя..." и выберите пользователя, к которому вы хотите применить это.
В нижней части нажмите на поле "Отложить задачу на" и, используя примеры, которые вам дают, укажите, насколько долго вы хотите, чтобы сеанс вашего пользователя длился. Например, если вы хотите "2 часа", введите "2 часа".
Нажмите "OK" дважды, чтобы завершить задачу.

Вы можете повторить этот процесс для отдельных пользователей, если хотите установить разные лимиты времени для разных пользователей. Либо вы можете использовать варианты “Пользователи” и “Любой пользователь”, чтобы это касалось всех без разбора. Все это также можно применить через групповую политику, хотя вам нужно будет быть осторожным, чтобы убедиться, что пользователи получают только задачи, предназначенные для них, если вы не применяете это глобально.

Я не знаю о каком-либо стороннем программном обеспечении для достижения этого, но я просто попробую запланированную задачу, срабатывающую при входе пользователя, с отложенным запуском на 2 часа.

Поместите в нее скрипт PowerShell (или пакетный, если предпочитаете), чтобы принудительно выполнить выход пользователя, или просто “shutdown /f /l /t 60” (60 секунд до принудительного выхода).

Если вы хотите заблокировать пользователя от повторного входа сразу после его выхода, это немного усложнит ситуацию.

Вы можете попробовать поэкспериментировать с отключением пользователя со стороны контроллера домена, основываясь на текстовом файле, заполненном именами пользователей, которые уже вышли в тот день. И, конечно, включить всех их утром следующего дня.
Или, второй вариант, другое запланированное задание с немедленным выходом, если существует определенный файл.
После 2 часов, перед выходом, создайте файл в каталоге пользователя, и на основе этого файла немедленный выход будет применяться. Было бы неплохо добавить какое-то сообщение для пользователя.

Это немного избыточно, но может работать вполне нормально для вас, без какого-либо стороннего программного обеспечения.

Ответ или решение

Для ограничения времени, потраченного пользователем на клиентской машине под управлением Windows, можно воспользоваться встроенными средствами системы, а также альтернативными решениями на основе сценариев.

Использование групповых политик

Основная функция для ограничения рабочего времени — это использование групповых политик (Group Policy). Вы можете задать часы входа пользователя и автоматическую блокировку системы за пределами этого времени. Тем не менее, Windows не имеет встроенной функции для ограничения времени работы внутри допускаемых часов. Таким образом, для вашей задачи потребуется комбинирование методов.

Настройка задачи для автоматической блокировки

Вот возможный подход с использованием планировщика задач Windows:

  1. Создание базовой задачи:

    • Откройте диспетчер задач и создайте новую задачу.
    • Установите триггер на «При входе в систему».
  2. Настройка задачи:

    • Временной интервал устанавливается через задержку задачи.
    • В качестве действия выберите запуск программного обеспечения, который будет вызывать команду для завершения сеанса:
      shutdown.exe
    • В аргументах укажите опции:
      /l /f
    • Это позволит завершить сессию пользователя через заданное время.
  3. Выбор пользователя:

    • В процессе настройки изменения выберите конкретного пользователя или группу, которая будет подлежать этой политике.
  4. Задержка выполнения:

    • Обязательно задайте задержку (например, 2 часа) перед выполнением задачи.

Комбинация с PowerShell

Можно также создать сценарий на PowerShell, который будет создавать файл в пользовательской директории для отслеживания времени использования. По истечении лимита можно активировать другой сценарий, который будет логировать пользователя.

Пример:

$logoffTime = Get-Date
$logoffTime = $logoffTime.AddHours(2)
while ($true) {
    if ((Get-Date) -ge $logoffTime) {
        shutdown.exe /l /f
    }
    Start-Sleep -Seconds 60
}

Третий способ: использование сторонних программ

Если встроенные функции Windows недостаточны, существует множество сторонних программ, которые можно использовать для управления временем сеансов. Некоторые из них:

  1. Time Doctor: позволяет отслеживать и управлять временем работы.
  2. NetSupport School: предлагает функционал для управления временем студентов в образовательных учреждениях.
  3. Candle: позволяет ограничивать доступ в соответствии с заданным реестром.

Эти решения могут предоставить вам более гибкие функции, чем встроенные средства Windows, но потребуют установки дополнительных компонентов на клиентских машинах.

Заключение

Ваша задача по ограничению времени работы пользователей на клиентских системах Windows может быть решена с помощью планировщика задач и настроек групповых политик. Если это ограничение окажется недостаточным, стоит рассмотреть возможность использования стороннего программного обеспечения, которое, как правило, предоставляет более детальные возможности мониторинга и управления.

Оцените материал
Добавить комментарий

Капча загружается...