Ваш пользователь входит в систему дома, подключает VPN и ждёт подключения диска, которое раньше появлялось само в офисе. Туннель поднимается, домен отвечает, и ничего не подключается. Ничего не сломано: сценарий входа выполняется при входе, а туннель, открытый через двадцать минут после начала сеанса, не является входом. Чтение этих двух событий как одного заставляет людей искать неисправность VPN, которой нет.

Четыре решения превращают неожиданность в правильно работающий процесс, и первое — просто знать, на каких событиях держится сценарий.

Сценарии держатся на событиях жизненного цикла, которые нельзя воспроизвести

Политика на стороне компьютера применяется при загрузке машины, а политика на стороне пользователя при входе, тогда как фоновое обновление проходит те же параметры, ничего не перезапуская. Это обновление обрабатывает расширение сценариев, но не запускает отдельные сценарии повторно, они срабатывают только при запуске, выключении, входе или выходе. Поэтому gpupdate /force может сообщить об успехе, хотя подключения диска по-прежнему нет, и чистое обновление не доказывает, что сценарий что-то сделал.

Справочник Microsoft по обработке политик проводит именно эту границу между обработкой расширения и выполнением того, что в нём есть, и это та страница, на которую ссылаются, когда кто-то настаивает, что обновление должно было повторить сценарий.

Не каждый сценарий терпит неудачу и без сети. Тот, что читает только локальные или кэшированные материалы, мог частично сработать, а тот, что обращается к общей папке, тихо терпит неудачу и не оставляет явного следа. Проверьте фактический путь сценария и до чего он доходит, прежде чем винить сеть. Такая же проверка нужна любому утверждению, что сценарий не выполняется при входе, поскольку запланированная задача или действие клиента могут делать работу там, где никто не смотрит.

Привяжите работу к подключению, а не ко входу

За фразой сценарий входа скрываются три разные задачи: подключение диска после того, как пользователь подключился, применение конфигурации машины до чьего-либо входа и получение обновлённой политики. У них разные сроки, и только второй действительно нужен доступ к сети до входа. Запишите требование как предложение со сроком, например: это подключение должно существовать в течение минуты после поднятия туннеля.

Для работы, которая должна произойти после подключения, используйте задачу, запускаемую подключением, или действие подключения, поддерживаемое клиентом. Проверьте, какое событие клиент действительно выдаёт, потому что событие, поднимаемое штатным клиентом VPN Windows, не поднимается сторонним клиентом. Для конфигурации машины, которая должна предшествовать входу, поддерживаемый ответ — туннель устройства или другой проект до входа, а не задача, срабатывающая при появлении рабочего стола. Выполняйте работу в той учётной записи и сеансе, которым она нужна, поскольку подключение, созданное как SYSTEM, попадает в сеанс, которого пользователь никогда не видит.

Проверьте готовность перед действием и терпите неудачу громко

Событие подключения может прийти раньше, чем DNS или файловый сервер станут доступны, поэтому задача должна проверять то, что ей нужно, а не предполагать. Разрешите конкретное имя, попробуйте конкретное подключение и повторите с ограничением и задержкой: Resolve-DnsName files.corp.example в коротком цикле отделяет ещё-не от никогда. После последней попытки сообщите о конкретной ошибке, с именем и текстом ошибки.

Бесконечный цикл без журнала неотличим от задачи, которая так и не началась, и он скрывает разницу между устаревшими учётными данными и правилом брандмауэра.

Проверьте четыре вещи, затем сделайте это повторяемым

Во время пилота фиксируйте четыре наблюдения вместо одного: событие подключения сработало, задача началась, ресурс ответил, и запрошенное изменение действительно применилось. Если журнал останавливается на задача началась, настоящая неисправность остаётся невидимой, сколько бы вы ни ждали. Затем выполните gpresult /scope user /v, чтобы увидеть, какую политику сеанс считает своей, и сравните с ожидаемым параметром. Отчёт, в котором GPO указана как применённая, всё равно ничего не говорит о подключении диска.

Сделайте работу безопасной для повторения, прежде чем расширять её, потому что клиент переподключается, и задача срабатывает снова. Перед созданием проверьте, не существует ли уже подключение или конфигурация, и запишите, что нашли. Дублирование работы после каждого кратковременного переподключения — это путь, которым полезная задача становится инцидентом.

Там, где автоматический триггер не подходит, одобренное действие пользователя, запускающее тот же подписанный сценарий, является законным решением. Оно делает момент явным вместо того, чтобы делать вид, что произошло событие входа.

Похожие статьи