Перейти к основному содержанию
 

Запуск BAT скрипта при логине на сервер один раз

code

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

Пишем BAT скрипт

У меня BAT файл называется install_sbis.bat.

@echo off
IF EXIST C:\Users\%UserName%\AppData\Sysadmin\flag.txt GOTO END
IF EXIST C:\Users\%UserName%\AppData\Sysadmin GOTO SYSADMIN
md C:\Users\%UserName%\AppData\Sysadmin
:SYSADMIN
set h=%time:~0,2%
set h=%h: =0%
set fn=%date% %h%:%time:~3,2%:%time:~6,2%
echo %fn% > C:\Users\%UserName%\AppData\Sysadmin\flag.txt

Здесь код вашего скрипта

:END

Скрипт создаёт файлик flag.txt в папке пользователя с датой и временем запуска. При повторном логине скрипт увидит этот файл и не выполнит повторно ваш код.

Автозапуск скрипта при логине пользователя

Скрипт install_sbis.bat копируем в папку C:\Windows\System32\GroupPolicy\User\Scripts\Logon.

sbis

Открываем редактор локальных политик на сервере.

gpedit.msc

sbis

Local Computer Policy > User Configuration > Windows Settings > Scripts (Logon/Logoff)

sbis

Редактируем параметр Logon.

sbis

Кнопка Show Files открывает папку со скриптами групповых политик, в нашем случае C:\Windows\System32\GroupPolicy\User\Scripts\Logon.

Нажимаем Add..

sbis

В Script Name указываем ссылку на наш скрипт C:\Windows\System32\GroupPolicy\User\Scripts\Logon\install_sbis.bat. ОК. Сохраняем изменения.

В локальных политиках находим параметр Local Computer Policy > Computer Configuration > Administrative Templates > System > Group Policy > Configure Logon Script Delay 

sbis

Редактируем, Enabled, указываем 0 минут.

sbis

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

Обновляем политики из командной строки от администратора:

gpupdate /force

sbis

Теперь скрипт запустится при логине пользователя на сервер.

Теги