Вы можете посмотреть на изменение следующего значения реестра:
HKEY_LOCAL_MACHINE\ Программное обеспечение \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon \ Userinit
Это значение определяет, что происходит, когда пользователь входит в систему. По умолчанию оно обычно имеет значение, подобное следующему:
C:\windows\system32\userinit.exe
но это может быть изменено, чтобы делать все, что вы хотите. Например, у нас есть несколько систем, которые мы хотим использовать в качестве дамп-терминалов, подключающихся к нашей ферме серверов терминалов Citrix. мы делаем это, изменяя это значение следующим образом:
c:\\windows\\system32\\wscript.exe c:\\someFolder\\somescript.vbs
это не мешает пользователю войти в систему, но останавливает инициализацию среды пользователя после того, как он вошел в систему. Вы можете сделать что-то похожее, когда скрипт переименует текущее значение Userinit во что-то вроде Original_Userinit, а затем создаст новое, которое будет указывать на скрипт, который просто выйдет из системы после их повторного входа. Затем, как только вы закончите делать то, что вы делаете, вы переименуете это значение во что-то другое, например Logoff_Userinit, а затем переименуете оригинал обратно.
Опять же, это не помешает пользователю войти в систему, но предотвратит начало сеанса входа в систему и немедленно завершит его регистрацию.