How to disable and enable network interface while Windows 7 is locked

Исходная ситуация

I'm working with multiple workstations on a domain where I'm not allowed to change screensaver or power saving options which is very common nowadays. I often have to switch between PCs and they get locked after 10 idle minutes. Какой ужас.

Currently I'm using caffeine to prevent screensaver and system lock. But this leads to the problem that my PCs are connected to the network 24/7 all the time. Even at night when I manually have locked all my workstations with Win+L.

Чего я хочу достичь

My idea is to automate these four tasks with AutoIt or AutoHotKey and trash all 3rd party software

  1. Disable a specific network interface once when system is locked and time is between 8 pm and 6 am
  2. Re-enable a specific network interface once when system is unlocked
  3. Ping a specific IP when system is not locked (this is for keeping a firewall open)
  4. Simulate a keypress once every minute so the system won't lock the screen or activate the screensaver

Что я пробовал до сих пор

Поскольку SU не о Дайте мне код, я начал искать в поисках безопасного пути, если Windows заблокирована. Оказывается, используя WinExist("A") не достаточно надежен, и я застрял.

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

1 ответ

Я бы использовал скрипт powershell для автоматизации этого, используя запланированное задание для запуска скрипта. Вы могли бы иметь

1) Отдельный скрипт для каждого события (вход / выход из системы, блокировка / разблокировка) 2) Передача одного скрипта различных параметров в зависимости от события (например, auto.ps1 /unlock)

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

Наконец, убедитесь, что ваш компьютер может запускать сценарии powershell напрямую или вызвать powershell.exe с соответствующими параметрами:

powershell.exe -noprofile -executionpolicy bypass -file C:\autoping.ps1
Другие вопросы по тегам