Настроим автозапуск 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.
Открываем редактор локальных политик на сервере.
gpedit.msc
Local Computer Policy > User Configuration > Windows Settings > Scripts (Logon/Logoff)
Редактируем параметр Logon.
Кнопка Show Files открывает папку со скриптами групповых политик, в нашем случае C:\Windows\System32\GroupPolicy\User\Scripts\Logon.
Нажимаем Add..
В 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
Редактируем, Enabled, указываем 0 минут.
Этот параметр есть не во всех операционных системах, он по умолчанию откладывает запуск скриптов при логине на 5 минут, это для нас неприемлемо.
Обновляем политики из командной строки от администратора:
gpupdate /force
Теперь скрипт запустится при логине пользователя на сервер.