rasdial қосылды дейді. Желі шынымен қашан дайын?
0 шығу коды теріп қою аяқталғанын білдіреді, файл ортақтасуының жауап бергенін емес. Бастапқы нәтижені жазып алыңыз, содан кейін жұмыс тәуелді ресурсты тексеріңіз.
VPN терезесін ашып, содан кейін он секунд ұйықтайтын скрипт болжам жасайды және бұл болжам екі бағытта да қате: туннель қолданысқа жарамды болмай тұрып көшіруді бастайды, немесе жұмыс басталуы мүмкін болғаннан кейін күтеді. Нәтижелердің ешқайсысы аутентификацияның аяқталғанын айтпайды. Қосымшаның өз нәтижесін пайдаланыңыз, содан кейін қызметке ол шынымен жауап бере алатын сұрақ қойыңыз. Осы екі қадамның реті — бүкіл дизайн.
Әмір шын мәнінде нені хабарлайды
Орнатылған командалық жол құралы түсінетін жергілікті Windows профилі үшін rasdial.exe аталған жазбаны тереді және процестің шығу кодын қайтарады. Бұл код теру әрекетін сипаттайды: нөл сол профиль үшін қосылым орнағанын, ал нөлден өзгеше мән код көрсеткен кезеңде сәтсіз аяқталғанын білдіреді. Оны бір қабаттың нәтижесі деп оқыңыз, жұмыстың нәтижесі деп емес.
Нәтиже мекенжай беру, жеке DNS, қосылған маршруттар немесе белгілі бір серверге жету рұқсаты туралы ештеңе айтпайды. Осының бәрі сәтті теруден кейін болады және олардың кез келгені әлі де қате болуы мүмкін. Дәл осы алшақтық қосылған белгішесі мен сәтсіз көшірудің соншалықты жиі бірге кездесуінің себебі.
Басқа ештеңе іске қосылмай тұрып нәтижені жазыңыз
Алдымен профильдің жұмысты орындайтын тіркелгі үшін бар екенін растаңыз, тек сынақ жүргізіп жатқан тіркелгі үшін ғана емес:
Get-VpnConnection -Name "Contoso-Office"
Get-VpnConnection -Name "Contoso-Office" -AllUserConnection
Содан кейін тере салыңыз да, кодты бірден оқыңыз. PowerShell бастапқы нәтижені $LASTEXITCODE ішінде тек келесі сыртқы команда іске қосылғанға дейін сақтайды, сондықтан теру мен тексеру арасындағы кездейсоқ ping оқығыңыз келген мәнді жояды. Алдымен оны өз айнымалыңызға меншіктеп алыңыз, содан кейін не істеу керектігін шешіңіз.
& rasdial.exe "Contoso-Office"
$dial = $LASTEXITCODE
if ($dial -ne 0) { throw "rasdial failed with $dial" }
Кодты құпия емес қате мәтінімен бірге журналға жазыңыз, өйткені жоғалған жазба, қабылданбаған тіркелгі деректері және уақыт бітуі әртүрлі жауаптарды талап етеді. Кесте кең таралған нәтижелерді келесі қадаммен байланыстырады.
| Result | What it indicates | Next step |
|---|---|---|
| 0 | The dial completed | Probe the resource, do not start writing yet |
| 691 | The credential or authentication method was rejected | Fix the account or method, do not retry in a loop |
| 623 | The named entry was not found | Fix the profile name or its scope |
| Other non-zero | Transport, timeout or adapter failure | Read the message, then check the path |
Дайындық — туннель емес, ресурс
Теру сәтті өткен соң, жұмысқа қажет нәрсені тексеріңіз. Ортақ қалта, API соңғы нүктесі немесе дерекқор порты ашық веб-сайттан гөрі жақсы дайындық тексерісі, өйткені ашық сайт кез келген жұмыс істейтін жол арқылы жауап береді және жеке жол туралы ештеңе дәлелдемейді. Қолданбаның өзі тәуелді тексерісті таңдаңыз. Сәтті TCP қосылымы маршруттау мен сүзгілеудің ашық екенін айтады, ал бірінші жазуға қажеттінің басым бөлігі — осы:
Test-NetConnection -ComputerName files.contoso.example -Port 445
Әрекеттерді шектеңіз және қай кезең сәтсіз болғанын жазып алыңыз. Қабылданбаған тіркелгі деректері скрипті тоқтатуы керек, қайталау циклін қоректендіру емес; әлі шықпаған DNS атауы бірнеше қысқа қайталауға лайық; ешқашан ашылмайтын порт — клиенттен жоғары маршруттау немесе саясат мәселесі.
Қосылым жұмыс басталмай тұрып болған болса, оны қозғамаңыз. Өзіңіз ашпаған сессияны ажырату пайдаланушының басқа жұмысын үзеді, сондықтан сессия кімге тиесілі және қандай жабу орынды екенін жазыңыз.
Профильді жұмысты орындайтын тіркелгімен шектеңіз
Жоспарланған тапсырма өз сәйкестігі мен сессиясы аясында жұмыс істейді және жұмыс үстеліңізде жұмыс істейтін профиль онда көрінбеуі мүмкін. Кестеге сенбес бұрын көріну тексерісін және теруді тапсырма тіркелгісі аясында қайталаңыз. Құпия сөзді де командалық жолдан алыс ұстаңыз: аргументтер басқа процестерге көрінеді және жиі журналдарға түседі.
Егер орналастыру браузер сұранысын, смарт-картаға қол тигізуді немесе MFA мақұлдауын талап етсе, бұл өзара әрекеттестік дизайнның бөлігі және пернелерді басуға еліктеу арқылы оны автоматтандыру мүмкін емес. Сол жағдай үшін қолдау көрсетілетін клиентті пайдаланыңыз және адам қадамының орын алуына жол беріңіз.
Соңғы скрипттің пішіні қысқа болып қалады: профильді тексеріңіз, тере салыңыз, кодты оқыңыз, ресурсты тексеріңіз, содан кейін жұмысты бастаңыз. Әр қадам алдыңғысы жауап бере алмаған сұраққа жауап береді және олардың ешқайсысы ұйқыға сүйенбейді.