Задать вопрос
sbh
@sbh

Как отключить компьютер при бездействии определенное время?

Мне так и не удалось на нескольких компьютерах настроить сон.
Не засыпают они и хоть что ты делай.
Собственно тогда появилась идея просто отключать их при бездействии например 2 часов.

Как это сделать лучше?
Скрипт написать - первое что приходит в голову, но как определить время бездействия ПК?
Может еще какие-нибудь способы есть или идеи?
  • Вопрос задан
  • 6386 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Сам недавно узнал (месяцев 8 назад) что в PowerShell можно использовать C# напрямую в скрипте.

Add-Type @'
    public class Foo
    {
        public string GetComputerName()
        {
            return System.Environment.MachineName + " it works!";
        }
    }
'@

$foo = New-Object Foo

$foo.GetComputerName()


Это позволит вам написать метод который вернет работает ли пользователь за ПК или нет, и уже на основании этого принимать решение о дальнейшей работе ПК. Можно также все это сделать в C# и только вызвать в скрипте.
Скрипт нельзя запускать много раз с добавлением типа, будет ошибка.
Для этого сохраните создание типа в другом скрипте и импортируйте его в основной через
. C:\Path\CreateType.ps1

При внесении изменения в тип нужно перезапустить сессию ISE PowerShell.
C# богаче для определения активности пользователя.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@yellowmew
Cloud infrastructure, monitoring engineer. SRE
Для начала ответьте себе на вопрос : как вы будете определять бездействие компьютера?
Если ваши компьютеры не уходят в сон по стандартной схеме, то есть подозрение что или бездействия, фактически, нет, или какая-то программа, сервис или устройство, не дают компьютеру уйти в сон.
Решите эти проблемы - и не придется колхозить.
Хотя, конечно, можете и придумать "хитрую" схему вроде : нажми раз в 15 минут всплывающую кнопку иначе компьютер взорвется уйдет в сон.
Тогда скрипт поможет, да.
Ответ написан
@Hitmanp
Самый логичный вариант. Через планировщик заданий. Запускаем батник с таймером побольше - 1.bat
Вдруг пользователь еще на рабочем месте.

shutdown -s -t 600 -c "Компьютер выключится через 10 минут"

Если пользователь еще на месте, то создаем для него на рабочем столе батник 2.bat

shutdown -a

Будет работать, если у юзера админские права.

Если юзер имеет права - Пользователи, то будет только завершаться сеанс. Вывод - в планировщике прописываем - запуск от имени Администратор. Указываем - вне зависимости от регистрации пользователя.
Ответ написан
Ranwise
@Ranwise
если у вас windows vista\7\8 то проверьте планировщик задач, возможно ночью качаются обновления\дефрагментация и прочее, что мешает засыпанию либо наоборот пробуждает ПК
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы