Mbani një VPN të Windows aktiv: aktivizoni rasdial në ngjarjen e shkëputjes
RasClient 20226 dhe 20227 shënojnë një rënie; 631 do të thotë që e bëri një person. Aktivizoni rasdial në dy të parat, ruani një kredencial dhe lexoni kodin e daljes.
Windows nuk ofron asnjë politikë rithirrjeje për klientin e tij VPN, kështu që një lidhje që bie në mesnatë është ende e ndërprerë në mëngjes. Një detyrë e planifikuar që vëzhgon shkëputjen dhe ekzekuton rasdial e mbyll atë boshllëk pa një klient të palës së tretë. Nëse detyra sillet si operator apo si lak varet nga tre detaje: cilat ngjarje përputh, cilat kredenciale mund të shohë dhe çfarë bën me rezultatin. Asnjëri nga të tre nuk është i vështirë, dhe humbja e secilit prej tyre është ajo që prodhon një detyrë që thërret përgjithmonë.
Pse një kohëmatës është shkas i gabuar
Një kohëmatës thërret sipas orarit të vet, pavarësisht nëse tuneli është i ndërprerë apo jo. Kjo prodhon përpjekje që askush nuk i nevojiste, dhe një përpjekje gjatë një sesioni pune mund ta ndërpresë atë. Një shkas ngjarjeje aktivizohet vetëm kur lidhja ndryshon gjendje, gjë që është më e lirë dhe më e lehtë për t'u arsyetuar. Ngjarja mbart gjithashtu arsyen, dhe arsyeja është ajo që ndan një dështim rrjeti nga një person që shkëputet me qëllim.
Ai dallim është dallimi midis një detyre të dobishme dhe një detyre që zihet me përdoruesin çdo mbrëmje. Është gjithashtu pjesa që zakonisht mungon në recetat që përshkruajnë vetëm veprimin.
Çifti i ngjarjeve, dhe ai që duhet shtypur
Klienti i Shërbimit të Qasjes në Distancë shkruan regjistrime të ciklit të jetës në regjistrin Application nën ofruesin RasClient. 20226 shënon një lidhje që përfundoi, dhe 20227 shënon një përpjekje që dështoi, kështu që cilado prej tyre mund të justifikojë një thirrje të re. Çdo gjë tjetër në detyrë varet nga përputhja e saktë e këtyre dy identifikuesve. Ata kanë qenë të qëndrueshëm me vite, prandaj recetat e ndërtuara mbi ta ende qarkullojnë, por një ndërtim që riemërton ofruesin ose identifikuesit bën që kërkesa të mos kthejë asgjë. Ekzekutoni përsëri hapin e provës pas çdo përditësimi funksioni, në vend që të prisni që detyra të ndalojë së aktivizuari.
Një përfundim duhet përjashtuar. Gabimi 631 do të thotë që përdoruesi shkëputi portën, dhe një rithirrje në atë moment zihet me personin që sapo ndryshoi rrjetin me qëllim. Vendosni përjashtimin në filtrin e shkasit dhe jo në skript, në mënyrë që detyra të mos nisë fare. Ai duhet të zbatohet vetëm për një ID ngjarjeje, sepse një kallëzues EventData përputhet vetëm kur ekziston elementi i emërtuar, dhe një klauzolë e përbashkët do të hidhte në heshtje çdo ngjarje të ID-së tjetër. Lexoni emrin e elementit nga një regjistrim i vërtetë përpara se të shkruani filtrin:
Get-WinEvent -LogName Application -MaxEvents 5 -FilterXPath "*[System[Provider[@Name='RasClient'] and EventID=20226]]" | Select-Object -First 1 -ExpandProperty ToXml
XML tregon emrat e saktë të Data në atë regjistrim. ErrorCode është drejtshkrimi i zakonshëm, dhe një regjistrim që përdor diçka tjetër kërkon që ai emër të zëvendësohet në filtrin më poshtë.
<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>
Ngjiteni atë në filtrin e personalizuar të shkasit dhe vërtetojeni si kërkesë përpara se të bëhet shkas. I njëjti XPath ekzekutohet nga PowerShell kundër regjistrit të drejtpërdrejtë, që është mënyra e lirë për të parë me çfarë përputhet ndërsa historiku i detyrave nuk është përfshirë ende.
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
Një shkas që në heshtje nuk përputhet me asgjë duket saktësisht si një detyrë që ekzekutohet dhe dështon. Të dyja shfaqen si "automatizimi nuk funksionon", dhe asnjëra nuk thotë cila gjysmë mungon. Kontrolloni fillimisht daljen e kërkesës, sepse i ndan të dy rastet në një hap.
Thirrja dështon sepse nuk ka njeri për të shtypur fjalëkalimin
Veprimi ekzekuton rasdial me emrin e lidhjes. Kur profili nuk ka kredenciale të ruajtura në cache, thirrja dështon menjëherë sepse nuk ka njeri për t'iu përgjigjur kërkesës. Kjo është arsyeja më e zakonshme pse një detyrë e aktivizuar saktë nuk bën asgjë të dukshme, prandaj kontrollojeni këtë përpara se të prekni shkasin. Thirrja me dorë nga një prompt komandash ndan një problem kredencialesh nga një problem planifikimi.
Ruani kredencialet një herë nën llogarinë me të cilën do të ekzekutohet detyra, dhe bëni atë llogari pjesë të projektimit. Një detyrë që ekzekutohet si SYSTEM nuk mund të lexojë kredenciale të ruajtura në cache nga llogaria juaj interaktive, dhe as një detyrë që ekzekutohet si dikush tjetër nuk mundet. Emri gjithashtu duhet të përputhet saktësisht me profilin, duke përfshirë çdo prefiks domeni në fushën e përdoruesit.
rasdial
rasdial "Office VPN"
(Start-Process rasdial -ArgumentList '"Office VPN"' -Wait -PassThru -NoNewWindow).ExitCode
Komanda e parë liston emrat që Windows njeh. E dyta thërret sipas emrit duke përdorur kredencialet e ruajtura në cache, dhe e treta është forma që duhet të përdorë një veprim PowerShell, sepse pret dhe kthen një vlerë që detyra mund të regjistrojë.
Lexoni kodin e daljes në vend të dritares
Një detyrë që nis një proces pa pritur raporton sukses sapo procesi ekziston. Për një thirrje që mund të dështojë një sekondë më vonë, ai verdikt është pa vlerë. Pritja e kodit të daljes e kthen veprimin në një rezultat të vërtetë. Historiku i detyrave vetëm tregon se një proces filloi, kurrë se një tunel u ngrit.
Regjistroni vlerën me një vulë kohore në çdo ekzekutim. Një dështim i vetëm pas një ndërprerjeje është normal, ndërsa tre dështime radhazi me të njëjtin kod tregojnë kredencialet ose profilin dhe jo rrjetin. Ky model është ai që e bën historikun të denjë për t'u lexuar.
Shtoni një interval të shkurtër përsëritjeje si sigurim, dhe jini eksplicit për mënyrën se si ndërvepron me një shkas ngjarjeje. Një përsëritje çdo minutë për pesë minuta ofron përpjekjen e dytë kur interneti u kthye bashkë me tunelin, dhe te Cilësimet, "Nëse detyra është tashmë në ekzekutim, zbatohet rregulli i mëposhtëm", detyra dëshiron "Mos nis një shembull të ri", në mënyrë që një përsëritje të mos mbivendoset me një thirrje ende në vazhdim. Pa atë cilësim, dy procese rasdial mund të garojnë për të njëjtën portë dhe i dyti dështon pa asnjë arsye të dobishme.
Provoni rrugën e rikuperimit
Provoni të dy drejtimet me qëllim. Shkëputuni me dorë dhe konfirmoni se nuk ndodh asnjë rithirrje, më pas çaktivizoni përshtatësin e rrjetit dhe konfirmoni se detyra aktivizohet kur lidhja kthehet. Këto dy teste mbulojnë rregullin e shtypjes dhe rastin e vërtetë të dështimit, dhe asgjë tjetër nuk e bën këtë.
Më pas lexoni historikun e detyrave në vend të ikonës së lidhjes. Historiku regjistron kur u ekzekutua detyra, cilën llogari përdori dhe çfarë ktheu veprimi, dhe kjo është prova e nevojshme kur e njëjta makinë bie përsëri muajin tjetër.