Помилка 623 від rasdial — це збій пошуку, а не збій мережі: у телефонній книзі немає запису з таким ім’ям. Windows очікує, що профіль уже існує, перш ніж якась команда почне його набирати, а програма додзвону ніколи не створює його сама. Пройдіть перевірки нижче по порядку, бо кожна припускає, що попередня пройдена.

Спершу прочитайте код помилки

Коди, що йдуть після 623, описують інші несправності, тому перший побачений текст визначає гілку. 691 — це відмова в облікових даних для профілю, який справді існує, а 868 зазвичай указує на розв’язання імен для адреси сервера. Лише 623 повертає вас до створення, тому повторення тієї самої команди рідко щось змінює.

Зафіксуйте код повернення на тому самому кроці, який виконує додзвін. Наступна команда в скрипті перезапише його, і справжній код зникне до того, як хтось прочитає журнал.

rasdial "Office"; if ($LASTEXITCODE -ne 0) { Write-Output "failed: $LASTEXITCODE" }

Переконайтеся, що запис у телефонній книзі існує

Запитайте Windows, які профілі насправді є, перш ніж додавати ще один. Команда повертає ім’я, адресу сервера й поточний стан з’єднання, а порожній результат одразу знімає питання.

Windows зберігає записи окремого користувача в одному файлі телефонної книги, а записи всіх користувачів — в іншому, тому одне ім’я може вказувати на два різні сервери. Це дублювання пояснює скрипт, який набирає хибну кінцеву точку, хоча перевірені вами параметри виглядають цілком правильними. Перелічіть обидва місця, перш ніж робити висновок про ім’я.

Get-VpnConnection -Name "Office" | Format-List Name, ServerAddress, ConnectionStatus
dir "%APPDATA%\Microsoft\Network\Connections\Pbk"
dir "%PROGRAMDATA%\Microsoft\Network\Connections\Pbk"

Створіть профіль за допомогою Add-VpnConnection

Створіть запис один раз командою, яка записує власний профіль, а не текстовим редагуванням. Укажіть адресу сервера, тип тунелю й метод автентифікації, який ваш шлюз справді приймає, бо профіль, що домовляється про неправильний протокол, згодом зазнає невдачі з повідомленням, яке звинувачує сервер.

Ви все ще можете вручну вставити розділ підключення в rasphone.pbk, але ніщо не перевіряє це редагування. Один неправильний ключ дає профіль, який ні з чим не автентифікується, а помилка, яку він створює, виглядає як віддалена несправність, а не як друкарська помилка.

Add-VpnConnection -Name "Office" -ServerAddress vpn.corp.internal \
  -TunnelType Ikev2 -AuthenticationMethod Eap -EncryptionLevel Required

Узгодьте сеанс зі сховищем облікових даних

Запис належить користувачеві або машині, а сертифікат чи збережені облікові дані за ним можуть бути доступні лише з одного сеансу входу. Планове завдання, що працює як SYSTEM, є іншим клієнтом, ніж обліковий запис, який увійшов, а служба в сеансі 0 не має робочого столу, на якому можна показати запит. Коли інтерактивний сеанс уперше зустрічає незнайому мережу, Windows відкриває запит розташування мережі, і програма додзвону не пропонує перемикача, щоб його заглушити. Ізоляція сеансів дозволяє уникнути цього запиту й водночас прибирає контекст користувача, який потрібен деяким методам автентифікації.

Виберіть власника свідомо: завдання, що запускається під час входу, для тунелю окремого користувача або службу для тунелю всієї машини. Змішувати ці два підходи й очікувати однакової поведінки — саме тому з’єднання, яке працює вручну, починає збоїти під автоматизацією.

Залиште автоматичний тригер таким, яким ви його знайшли

Windows може сам підняти тунель, коли збігається застосунок або мережева умова, а відключення може додати профіль до списку вимкнених записів автоматичного тригера. Наступна автоматична спроба тоді так і не відбувається, значно пізніше після завершення відповідального скрипта. Тому завдання, яке відключається безумовно, ламає поведінку постійного підключення для всіх інших користувачів цієї машини. Цей побічний ефект невидимий у журналі завдання, і саме це робить його дорогим.

Запишіть стан профілю до запуску завдання й поверніть його таким, яким знайшли, замість того щоб типово зносити тунель. Повторне ввімкнення тригера — це зміна політики, тож ставтеся до нього як до свідомого кроку, а не як до прибирання.

Два обмеження переживуть будь-який обсяг скриптів. rasdial може повідомляти про успіх, поки служба за тунелем усе ще недоступна, тому перевіряйте саме той ресурс, який вам потрібен. Профіль, що вимагає смарт-картку, push-підтвердження або вхід через браузер, не має шляху без участі людини, і живий власник залишається частиною задуму.

Схожі статті