وینډوز د خپل 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

لومړی کمانډ هغه نومونه لیستوي چې وینډوز یې پېژني۔ دویم د کیش شوو اسنادو په کارولو نوم له مخې زنګ وهي، او دریم هغه بڼه ده چې د PowerShell عمل باید کاروي یې، ځکه انتظار کوي او هغه ارزښت بېرته راوړي چې دنده یې ثبتولای شي۔

د کړکۍ پر ځای د وتلو کوډ ولوله

هغه دنده چې پروسه پرته له انتظار پیلوي، سمدلاسه د بریا خبر ورکوي چې پروسه موجوده شي۔ د هغه زنګ لپاره چې یوه ثانیه وروسته ناکامېدلای شي، دا پرېکړه بې ارزښته ده۔ د وتلو کوډ انتظار کول عمل ریښتینې پایله جوړوي۔ د دندې تاریخ یوازې ښیي چې پروسه پیل شوه، هېڅکله نه ښیي چې تونل پورته راغی۔

هر ځل چلېدو پر مهال ارزښت د وخت نښې سره ولیکه۔ له پرېوتنې وروسته یوازینی ناکامي نورماله ده، خو له یوه کوډ سره پرلهپسې درې ناکامۍ شبکه ته نه، بلکې اسنادو یا پروفایل ته اشاره کوي۔ همدا بڼه تاریخ د لوستلو وړ جوړوي۔

د بیمې په توګه لنډ تکرار وقفه اضافه کړه، او روښانه کړه چې دا له پېښې محرک سره څنګه تعامل کوي۔ پنځه دقیقې هر دقیقه تکرار هغه وخت دویمه هڅه برابروي چې انټرنېټ له تونل سره بېرته راغی، او د ترتیباتو لاندې، "که دنده لا مخکې روانه وي، لاندې قاعده پلي کېږي"، دنده غواړي "نوی نمونه مه پیلوه" تر څو تکرار له روان زنګ سره چې لا پای نه دی رسېدلی یو ځای نشي۔ پرته له دې ترتیب څخه دوه rasdial پروسې کولای شي پر یوه پورت سیالي وکړي او دویمه پرته له کوم ګټور لامل ناکامېږي۔

د بیا رغېدو لاره ثابته کړه

دواړه لوري په قصد سره وازمایه۔ په لاس اړیکه پرې کړه او تایید کړه چې بیا زنګ نه وهل کېږي، بیا شبکه اډاپټر غیر فعال کړه او تایید کړه چې د اړیکې بېرته راتلو سره دنده فعالېږي۔ دا دوې ازموینې د ځپلو قاعده او ریښتینی ناکامي حالت پوښي، او بل هېڅ نه دا کوي۔

بیا وروسته د اړیکې آیکون پر ځای د دندې تاریخ ولوله۔ تاریخ ثبتوي چې دنده کله چلېده، کوم حساب یې کاراوه او عمل څه بېرته راوړل، او راتلونکې میاشت کې که هماغه ماشین بیا پرېوځي همدا شاهد ته اړتیا وي۔

اړوندې مقالې