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-ийн зөвшөөрөл шаарддаг бол тэр харилцан үйлдэл нь загварын нэг хэсэг бөгөөд товчлуур дарахыг дуурайж автоматжуулж болохгүй. Тэр тохиолдолд дэмжигдсэн клиентийг ашиглаж, хүний алхам хийгдэх боломжийг олго.
Эцсийн скриптийн хэлбэр богино хэвээр: профайлыг шалга, холбогд, кодог унш, ресурсыг шалга, дараа нь ажлыг эхлүүл. Алхам бүр өмнөх нь хариулж чадаагүй асуултад хариулдаг бөгөөд тэдгээрийн аль нь ч хүлээлтээс хамаардаггүй.