Підключення до VPN не перезапускає ваш сценарій входу
Сценарії входу виконуються під час входу, а не тоді, коли з'являється тунель. Розділіть запуск, вхід і фонове оновлення, а потім запускайте роботу за підключенням.
Ваш користувач входить у систему вдома, підключає VPN і чекає на підключення диска, яке раніше в офісі з'являлося саме. Тунель піднімається, домен відповідає, і нічого не підключається. Нічого не зламано: сценарій входу виконується під час входу, а тунель, відкритий через двадцять хвилин після початку сеансу, не є входом. Читання цих двох як однієї події змушує людей шукати несправність VPN, якої не існує.
Чотири рішення перетворюють несподіванку на робочий процес, що поводиться правильно, і перше — просто знати, на яких подіях тримається сценарій.
Сценарії тримаються на подіях життєвого циклу, які не можна відтворити
Політика на боці комп'ютера застосовується під час завантаження машини, а політика на боці користувача під час входу, тоді як фонове оновлення проходить ті самі параметри, нічого не перезапускаючи. Це оновлення обробляє розширення сценаріїв, але не запускає окремі сценарії повторно, вони спрацьовують лише під час запуску, вимкнення, входу або виходу. Тому gpupdate /force може повідомити про успіх, хоча підключення диска досі немає, і чисте оновлення не є доказом, що сценарій щось зробив.
Довідка Microsoft щодо обробки політик проводить саме цю межу між обробкою розширення та виконанням того, що в ньому є, і це та сторінка, на яку посилаються, коли хтось наполягає, що оновлення мало повторити сценарій.
Не кожен сценарій зазнає невдачі й без мережі. Той, що читає лише локальні або кешовані матеріали, міг частково вдатися, а той, що звертається до спільної теки, тихо зазнає невдачі й не залишає помітного сліду. Перевірте фактичний шлях сценарію і до чого він доходить, перш ніж звинувачувати мережу. Така сама перевірка потрібна будь-якому твердженню, що сценарій не виконується під час входу, адже заплановане завдання або дія клієнта можуть виконувати роботу там, куди ніхто не дивиться.
Прив'яжіть роботу до підключення, а не до входу
За фразою сценарій входу ховаються три різні завдання: підключення диска після того, як користувач підключився, застосування конфігурації машини до чийогось входу та отримання оновленої політики. У них різні терміни, і лише другому справді потрібен зв'язок до входу. Запишіть вимогу як речення з терміном, наприклад: це підключення має існувати протягом хвилини після підняття тунелю.
Для роботи, що має відбутися після підключення, використовуйте завдання, яке запускається підключенням, або дію підключення, яку підтримує клієнт. Перевірте, яку подію клієнт насправді видає, бо подію, яку піднімає вбудований клієнт VPN Windows, не піднімає сторонній клієнт. Для конфігурації машини, що має передувати входу, підтримувана відповідь — тунель пристрою або інший проєкт до входу, а не завдання, що спрацьовує після появи робочого столу. Виконуйте роботу в тому обліковому записі й сеансі, яким вона потрібна, оскільки підключення, створене як SYSTEM, потрапляє в сеанс, якого користувач ніколи не бачить.
Перевірте готовність перед дією і зазнавайте невдачі голосно
Подія підключення може надійти раніше, ніж DNS або файловий сервер стануть доступними, тож завдання має перевіряти те, що йому потрібно, а не припускати. Розв'яжіть конкретне ім'я, спробуйте конкретне підключення і повторіть із межею та затримкою: Resolve-DnsName files.corp.example у короткому циклі відокремлює ще-не від ніколи. Після останньої спроби повідомте про конкретну помилку, з ім'ям і текстом помилки.
Нескінченний цикл без журналу не відрізнити від завдання, яке так і не почалося, і він приховує різницю між застарілими обліковими даними та правилом брандмауера.
Перевірте чотири речі, а потім зробіть це повторюваним
Під час пілоту фіксуйте чотири спостереження замість одного: подія підключення спрацювала, завдання почалося, ресурс відповів, і запитана зміна справді застосувалася. Якщо журнал зупиняється на завдання почалося, справжня несправність залишається невидимою, скільки б ви не чекали. Потім виконайте gpresult /scope user /v, щоб побачити, яку політику сеанс вважає своєю, і порівняйте з очікуваним параметром. Звіт, у якому GPO вказано як застосовану, все одно нічого не каже про підключення диска.
Зробіть роботу безпечною для повторення, перш ніж розширювати її, бо клієнт перепідключається, і завдання спрацьовує знову. Перед створенням перевірте, чи вже існує підключення або конфігурація, і запишіть, що знайшли. Дублювання роботи після кожного короткочасного перепідключення — це шлях, яким корисне завдання стає інцидентом.
Там, де автоматичний тригер не підходить, схвалена дія користувача, що запускає той самий підписаний сценарій, є законним рішенням. Вона робить момент явним замість того, щоб вдавати, ніби сталася подія входу.