Выключение рабочих станций пользователей в сети

Задача такова: требуется организовать аварийное выключение рабочих станций пользователей в сети.

Реализовано через мою программу MSBRO_Z-SYS_Shutdown.
Для реализации задачи был выбран Autoit.
Листинг программы:

#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 файл и примените параметры на рабочие станции пользователей:

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

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *