Задача такова: требуется организовать аварийное выключение рабочих станций пользователей в сети.
Реализовано через мою программу MSBRO_Z-SYS_Shutdown.
Для реализации задачи был выбран Autoit.
Листинг программы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
#NoTrayIcon Sleep(15000) $myRegX86 = 'HKEY_LOCAL_MACHINE\SOFTWARE\MSBRO' $myRegX64 = 'HKEY_LOCAL_MACHINE64\SOFTWARE\MSBRO' $myRegPath ='' If Not StringInStr(@OSArch, "X86") Then $myRegPath = $myRegX64 Else $myRegPath = $myRegX86 EndIf $Install = RegRead($myRegPath, "Shutdown_Install") If Not StringInStr($Install, "yes") Then exit Else $LanPath = RegRead($myRegPath, "Shutdown_LanPath") $CheckInterval = RegRead($myRegPath, "Shutdown_CheckInterval") $ShutdownDelayInterval = RegRead($myRegPath, "Shutdown_ShutdownDelayInterval") EndIf Local $i = 0 While $i <= 100 If FileExists($LanPath) Then Sleep($ShutdownDelayInterval) Shutdown(5) Else Sleep($CheckInterval) EndIf $i = $i + 0 WEnd |
Указанная программа компилируется в MSBRO_Z-SYS_Shutdown.EXE файл после чего EXE файл распространяется на компьютеры пользователей через групповые политики. так же через групповые политики этот MSBRO_Z-SYS_Shutdown.EXE файл ставится в авто запуск при входе пользователя в систему. Запущенный файл MSBRO_Z-SYS_Shutdown виден в диспетчере задач но работая никак не проявляет себя.
Для управления требуются некоторые параметры. Эта программа MSBRO_Z-SYS_Shutdown их берет из реестра.
Создайте MSBRO_Z-SYS_Shutdown.REG файл и примените параметры на рабочие станции пользователей:
1 2 3 4 5 6 |
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\MSBRO] "ShutdownWS_Install"="yes" "ShutdownWS_LanPath"="\\\\z-sys\\z-share$\\z-sys-alarm-file.txt" "ShutdownWS_CheckInterval"="10000" "ShutdownWS_ShutdownDelayInterval"="5000" |
Параметры означают:
“ShutdownWS_Install” – работа MSBRO_Z-SYS_Shutdown.exe разрешена
“ShutdownWS_LanPath” – указывается путь который проверяется
“ShutdownWS_CheckInterval” – указывается интервал проверки
“ShutdownWS_ShutdownDelayInterval” – указывается задержка срабатывания после выполнения условий
Как это работает:
При запуске этой программы msbro-z-sys-private формируется текстовый файл. Программа MSBRO_Z-SYS_Shutdown при запуске считывает параметры реестра и периодически (параметр ShutdownWS_CheckInterval в миллисекундах) проверяет наличие файла (например по пути ‘\\z-sys\\z-share$\\z-sys-alarm-file.txt’ указанным в параметре ShutdownWS_LanPath). Триггером вызывающим срабатывание является наличие файла по указанному пути (в данном случае ‘\\z-sys\\z-share$\\z-sys-alarm-file.txt’). Если триггер сработал то программа делает паузу (указанно ShutdownWS_ShutdownDelayInterval в миллисекундах) и завершает работу компьютера. Все запущенные программы завершают работу без подтверждения.
Программу можно использовать для выключения компьютеров на ночь или при плановом отключении электроэнергии. Это сильно упрощает жизнь системному администратору. Надежность моего способа выключения: 99%. По практике после появления файла ‘\\z-sys\\z-share$\\z-sys-alarm-file.txt’ компьютеры оказываются выключенными уже после 60-90 секунд.
Есть варианты выключения с помощью psshutdown.exe из утилит PSTools. Но по практике настроить надежное 99% выключение компьютеров с помощью psshutdown я не смог.
Удачи!
Исходники можете взять у меня тут: Z-SYS_Shutdown