Windows өөрийн VPN клиентэд дахин залгах бодлого санал болгодоггүй тул шөнө дунд тасарсан холболт өглөөний цайны үеэр ч хаалттай хэвээр байна. Тасралтыг ажиглаж, rasdial-г ажиллуулдаг товлосон ажил гуравдагч талын клиентгүйгээр энэ цоорхойг нөхдөг. Ажил оператор шиг эсвэл давталт шиг ажиллах нь гурван дэлгэрэнгүйгээс хамаарна: аль үйл явдлуудтай таарч байгаа, ямар нэвтрэх мэдээлэл харж чадах, үр дүнгээр юу хийдэг. Гурвын аль нь ч хэцүү биш бөгөөд аль нэгийг нь орхих нь үүрд залгадаг ажил үүсгэдэг.

Таймер яагаад буруу триггер вэ

Таймер туннель хаалттай эсэхээс үл хамааран өөрийн хуваарийн дагуу залгадаг. Энэ нь хэнд ч хэрэггүй оролдлогууд үүсгэдэг бөгөөд ажлын сессийн үеийн оролдлого түүнийг тасалдуулж болно. Үйл явдлын триггер зөвхөн холболт төлөвөө өөрчлөх үед ажилладаг нь хямд бөгөөд бодоход хялбар. Үйл явдал шалтгааныг ч агуулдаг бөгөөд шалтгаан нь сүлжээний доголдлыг санаатайгаар салгаж буй хүнээс ялгадаг.

Энэ ялгаа нь ашигтай ажил ба орой бүр хэрэглэгчтэй тэмцдэг ажлын хоорондох ялгаа юм. Энэ нь зөвхөн үйлдлийг дүрсэлсэн жорд ихэвчлэн дутагддаг хэсэг ч юм.

Үйл явдлын хос, ба дарах ёстой нь

Remote Access Service клиент амьдралын мөчлөгийн бүртгэлүүдийг RasClient нийлүүлэгчийн доор Application бүртгэлд бичдэг. 20226 дууссан холболтыг, 20227 бүтэлгүйтсэн оролдлогыг тэмдэглэдэг тул аль аль нь шинэ залгалтыг зөвтгөж чадна. Ажил дахь бусад бүхэн энэ хоёр танигчийг яг таг тааруулахаас хамаарна. Тэд олон жилийн турш тогтвортой байсаар байгаа тул тэдгээрт тулгуурласан жорууд одоо ч эргэлдсээр байгаа боловч нийлүүлэгч эсвэл танигчдын нэрийг өөрчилсөн бүтээц асуулга юу ч буцаадаггүй болгодог. Функц шинэчлэгдэх бүрд нотлох алхмыг дахин ажиллуул, ажил ажиллахаа болихыг хүлээхийн оронд.

Нэг дуусгалтыг хасах хэрэгтэй. 631 алдаа нь портыг хэрэглэгч салгасан гэсэн үг бөгөөд тэр мөчид дахин залгах нь дөнгөж санаатайгаар сүлжээ сольсон хүнтэй тэмцэх болно. Хасалтыг скриптэд биш, триггерийн шүүлтүүрт хийснээр ажил огт эхлэхгүй. Энэ нь зөвхөн нэг үйл явдлын ID-д хамаарах ёстой, учир нь EventData предикат нэрлэсэн элемент байгаа үед л таардаг бөгөөд нийтлэг заалт нөгөө ID-ын бүх үйл явдлыг чимээгүй хаях байсан. Шүүлтүүр бичихээс өмнө бодит бүртгэлээс элементийн нэрийг унш:

Get-WinEvent -LogName Application -MaxEvents 5 -FilterXPath "*[System[Provider[@Name='RasClient'] and EventID=20226]]" | Select-Object -First 1 -ExpandProperty ToXml

XML тэр бүртгэл дэх Data-ийн яг нэрсийг харуулна. ErrorCode нь ердийн бичиглэл бөгөөд өөр зүйл ашигладаг бүртгэл доорх шүүлтүүрт тэр нэрийг солих шаардлагатай.

<QueryList><Query Id="0" Path="Application"><Select Path="Application">*[System[Provider[@Name='RasClient'] and (EventID=20226 or EventID=20227)]] and (EventData[Data[@Name='ErrorCode'] != '631'] or System[EventID=20227])</Select></Query></QueryList>

Үүнийг триггерийн өөрчлөн тохируулсан шүүлтүүрт буулгаж, триггер болохоос өмнө асуулга хэлбэрээр нотол. Мөн XPath PowerShell-ээс амьд бүртгэлийн эсрэг ажилладаг бөгөөд энэ нь ажлын түүх хараахан оролцоогүй байхад юутай таарч байгааг харах хямд арга юм.

Get-WinEvent -LogName Application -MaxEvents 40 -FilterXPath "*[System[Provider[@Name='RasClient'] and (EventID=20226 or EventID=20227)]] and (EventData[Data[@Name='ErrorCode'] != '631'] or System[EventID=20227])" | Select-Object TimeCreated,Id,Message

Чимээгүйгээр юутай ч таарахгүй триггер ажиллаад бүтэлгүйтдэг ажилтай яг адил харагдана. Хоёулаа "автоматжуулалт ажиллахгүй байна" гэж харагдах бөгөөд аль хагас нь дутуу байгааг хэлдэггүй. Эхлээд асуулгын гаралтыг шалга, учир нь энэ нь хоёр тохиолдлыг нэг алхамаар ялгадаг.

Нууц үг бичих хүн байхгүй тул залгалт бүтэлгүйтдэг

Үйлдэл холболтын нэрээр rasdial-г ажиллуулдаг. Профайлд кэшлэсэн нэвтрэх мэдээлэл байхгүй бол зааварт хариулах хүн байхгүй тул залгалт шууд бүтэлгүйтдэг. Зөв триггерлэгдсэн ажил юу ч харагдахуйц хийдэггүйн хамгийн түгээмэл шалтгаан энэ тул триггерто хүрэхээс өмнө үүнийг шалга. Команд мөрөөс гараар залгах нь нэвтрэх мэдээллийн асуудлыг хуваарийн асуудлаас ялгадаг.

Нэвтрэх мэдээллийг ажил ажиллах бүртгэлийн доор нэг удаа хадгалж, тэр бүртгэлийг дизайны хэсэг болго. SYSTEM-ээр ажилладаг ажил таны интерактив бүртгэлээс кэшлэсэн мэдээллийг уншиж чадахгүй, өөр хэн нэгний нэрээр ажилладаг ажил ч чадахгүй. Нэр нь мөн хэрэглэгчийн талбар дахь домэйн угтварыг оролцуулан профайлтай яг таарах ёстой.

rasdial
rasdial "Office VPN"
(Start-Process rasdial -ArgumentList '"Office VPN"' -Wait -PassThru -NoNewWindow).ExitCode

Эхний команд Windows-ын мэддэг нэрсийг жагсаана. Хоёр дахь нь кэшлэсэн нэвтрэх мэдээллийг ашиглан нэрээр залгадаг, гурав дахь нь PowerShell үйлдэл ашиглах ёстой хэлбэр юм, учир нь энэ нь хүлээж, ажил бичиж болох утгыг буцаадаг.

Цонхны оронд гарах кодыг унш

Хүлээлгүй процесс эхлүүлдэг ажил процесс байгаа даруйд амжилтыг мэдээлдэг. Секундын дараа бүтэлгүйтэж болох залгалтын хувьд энэ дүгнэлт үнэ цэнгүй. Гарах кодыг хүлээх нь үйлдлийг бодит үр дүн болгоно. Ажлын түүх дангаараа зөвхөн процесс эхэлснийг харуулдаг, туннель боссныг хэзээ ч харуулдаггүй.

Ажиллах бүрд утгыг цагийн тэмдэглэгээтэй бич. Тасалдалын дараах ганц бүтэлгүйтэл хэвийн, харин ижил кодтой дараалан гурван бүтэлгүйтэл сүлжээ биш нэвтрэх мэдээлэл эсвэл профайл руу заана. Яг тэр хэв маяг түүхийг уншихад үнэ цэнтэй болгодог.

Даатгал болгон богино давталтын интервал нэмж, үйл явдлын триггертай хэрхэн харилцааг тодорхой хэл. Таван минутын турш минут тутам давтах нь интернет туннельтай хамт буцаж ирэхэд хоёр дахь оролдлогыг өгдөг бөгөөд Тохиргооны "Хэрэв ажил аль хэдийн ажиллаж байгаа бол дараах дүрэм үйлчилнэ" хэсэгт ажил "Шинэ инстанц эхлүүлэхгүй" гэж хүсдэг тул давталт үргэлжилж буй залгалттай давхцахгүй. Энэ тохиргоогүйгээр хоёр rasdial процесс ижил портын төлөө өрсөлдөж, хоёр дахь нь ямар ч ашигтай шалтгаангүйгээр бүтэлгүйтдэг.

Сэргээх замыг нотол

Хоёр чиглэлийг санаатайгаар турш. Гараар салгаж, дахин залгалт болохгүйг батал, дараа нь сүлжээний адаптерийг идэвхгүй болгож, холбоос буцаж ирэхэд ажил ажиллахыг батал. Эдгээр хоёр туршилт дарах дүрэм болон бодит доголдлын тохиолдлыг хамардаг бөгөөд өөр юу ч үүнийг хийдэггүй.

Дараа нь холболтын дүрсний оронд ажлын түүхийг унш. Түүх ажил хэзээ ажилласан, ямар бүртгэл ашигласан, үйлдэл юу буцаасныг бичдэг бөгөөд дараа сард мөн тэр машин дахин тасрахад яг тэр нотолгоо хэрэгтэй болно.

Холбоотой нийтлэлүүд