Mantendu Windows VPN bat martxan: piztu rasdial deskonexio-gertaeran
RasClient 20226 eta 20227 erorketa bat markatzen dute; 631ek pertsona batek egin zuela esan nahi du. Piztu rasdial lehen bietan, gorde kredentzial bat, eta irakurri irteera-kodea.
Windowsek ez du bere VPN bezeroarentzat berriz markatzeko politikarik eskaintzen, beraz gauerdian erortzen den konexioa goizeko gosarian ere behera dago. Deskonexioa zaintzen duen eta rasdial exekutatzen duen programatutako zeregin batek hutsune hori ixten du hirugarrenen bezerorik gabe. Zeregina operadore gisa edo begizta gisa jokatzen duen hiru xehetasunen araberakoa da: zein gertaera parekatzen dituen, zein kredentzial ikus dezakeen eta emaitzarekin zer egiten duen. Hiruretako bat ere ez da zaila, eta horietako edozein falta izatea betiko markatuko duen zeregina sortzen duena da.
Zergatik den tenporizadorea abiarazle okerra
Tenporizadoreak bere ordutegiaren arabera markatzen du, tunela behera dagoen ala ez. Hori inork behar ez zituen saiakerak sortzen ditu, eta lan-saio baten erdian egindako saiakera batek eten egin dezake. Gertaera-abiarazlea konexioak egoera aldatzen duenean soilik pizten da, eta hori merkeagoa eta arrazoitzeko errazagoa da. Gertaerak arrazoia ere eramaten du, eta arrazoia da sare-hutsegitea nahita deskonektatzen den pertsonarengandik bereizten duena.
Bereizketa hori zeregin erabilgarri baten eta gaian erabiltzailearekin borrokatzen den baten arteko aldea da. Halaber, ekintza soilik deskribatzen duten errezetetatik normalean falta den zatia da.
Gertaera-parea, eta ezabatu beharrekoa
Remote Access Service bezeroak bizi-zikloaren erregistroak Application egunkarian idazten ditu RasClient hornitzailearen pean. 20226 amaitutako konexio bat markatzen du, eta 20227 huts egin zuen saiakera bat, beraz edozein markatze berri justifika dezake. Zeregineko gainerako guztia bi identifikatzaile horiek zehazki parekatzearen mende dago. Urteak daramatzate egonkor, eta horregatik haietan oinarritutako errezetak oraindik ere zirkulatzen dute, baina hornitzailea edo identifikatzaileak berrizendatzen dituen eraikuntzak kontsulta ezer ez itzultzea eragiten du. Errepikatu froga-pausoa funtzioaren eguneraketa bakoitzaren ondoren, zeregina pizteari uzteko itxaron ordez.
Amaiera bat baztertu behar da. 631 erroreak erabiltzaileak ataka deskonektatu duela esan nahi du, eta une horretan berriz markatzeak sarez nahita aldatu duen pertsonarekin borrokatzen du. Jarri bazterketa abiarazlearen iragazkian, ez gidoian, zereginak bat ere has ez dadin. Gertaeren identifikatzaile bakarrari aplikatu behar zaio, EventData predikatuak elementu izendatua existitzen denean soilik parekatzen baita, eta klausula partekatu batek beste identifikatzailearen gertaera guztiak isilka baztertuko lituzke. Irakurri elementuaren izena erregistro erreal batetik iragazkia idatzi aurretik:
Get-WinEvent -LogName Application -MaxEvents 5 -FilterXPath "*[System[Provider[@Name='RasClient'] and EventID=20226]]" | Select-Object -First 1 -ExpandProperty ToXml
XMLak erregistro horretako Data izen zehatzak erakusten ditu. ErrorCode ohiko idazkera da, eta beste zerbait erabiltzen duen erregistro batek beheko iragazkian izen hori ordeztea behar du.
<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>
Itsatsi hori abiarazlearen iragazki pertsonalizatuan, eta egiaztatu kontsulta gisa abiarazle bihurtu aurretik. XPath berak PowerShell-etik exekutatzen du zuzeneko egunkariaren aurka, eta hori modu merkea da zer parekatzen duen ikusteko zereginen historiak oraindik zerikusirik ez duen bitartean.
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
Isilka ezer parekatzen ez duen abiarazle bat exekutatu eta huts egiten duen zeregin baten berdin-berdina da. Biek «automatizazioak ez du funtzionatzen» gisa agertzen dira, eta batek ere ez du esaten zein erdi falta den. Egiaztatu kontsultaren irteera lehenik, bi kasuak pauso bakarrean bereizten baititu.
Markatzeak huts egiten du pasahitza idazteko inor ez delako
Ekintzak rasdial exekutatzen du konexioaren izenarekin. Profilak kredentzialik cachean ez duenean, markatzeak berehala huts egiten du galdeari erantzuteko inor ez dagoelako. Hori da behar bezala abiarazitako zeregin batek ezer ikusgarririk egiten ez duen arrazoi ohikoena, beraz egiaztatu hori abiarazlea ukitu aurretik. Komando-leta batetik eskuz markatzeak kredentzial arazoa programazio arazo batetik bereizten du.
Gorde kredentziala behin zeregina exekutatuko den kontuaren pean, eta egin kontu hori diseinuaren parte. SYSTEM gisa exekutatzen den zeregin batek ezin ditu zure kontu interaktiboak cachean gordetako kredentzialak irakurri, ez eta beste norbait gisa exekutatzen den zeregin batek ere. Izenak profilarekin zehazki bat etorri behar du, erabiltzaile-eremuko domeinu aurrizki edozein barne.
rasdial
rasdial "Office VPN"
(Start-Process rasdial -ArgumentList '"Office VPN"' -Wait -PassThru -NoNewWindow).ExitCode
Lehen komandoak Windowsek ezagutzen dituen izenak zerrendatzen ditu. Bigarrenak izenaren arabera markatzen du cachean gordetako kredentziala erabiliz, eta hirugarrena PowerShell ekintza batek erabili beharko lukeen forma da, itxaron eta zereginak erregistra dezakeen balio bat itzultzen baitu.
Irakurri irteera-kodea leihoaren ordez
Prozesu bat itxaron gabe abiarazten duen zeregin batek arrakasta jakinarazten du prozesua existitzen den bezain laster. Segundo bat geroago huts egin dezakeen markatze batentzat, epai hori baliogabea da. Irteera-kodearen zain egoteak ekintza benetako emaitza bihurtzen du. Zereginen historiak bere horretan prozesu bat hasi dela erakusten du soilik, inoiz ez tunel bat altxatu denik.
Erregistratu balioa denbora-zigiluarekin exekuzio bakoitzean. Etendura baten ondorengo hutsegite bakarra normala da, baina kode berarekin jarraian hiru hutsegite kredentzialera edo profilera bideratzen dira, ez satera. Eredu hori da historia irakurtzea merezi duena.
Gehitu errepikapen-tarte labur bat aseguru gisa, eta esan argi nola elkarreragiten duen gertaera-abiarazle batekin. Bost minutuz minuturo errepikatzeak bigarren saiakera ematen du internet tunelarekin batera itzuli zenean, eta Ezarpenak atalean, «Zeregina jadanik exekutatzen ari bada, ondorengo araua aplikatzen da», zereginak «Ez hasi instantzia berririk» nahi du, errepikapen bat oraindik martxan den markatze batekin gainjar ez dadin. Ezarpen hori gabe, bi rasdial prozesuk ataka beraren alde lehiatu dezakete eta bigarrenak huts egiten du arrazoi erabilgarririk gabe.
Frogatu berreskuratze-bidea
Probatu bi norabideak nahita. Deskonektatu eskuz eta egiaztatu berriz markatzerik gertatzen ez dela, gero desgaitu sare egokitzailea eta egiaztatu zeregina pizten dela esteka itzultzean. Bi proba horiek ezabapen-araua eta hutsegite kasu erreala estaltzen dituzte, eta besterik ez du hori egiten.
Gero irakurri zereginen historia konexioaren ikonoaren ordez. Historiak erregistratzen du zeregina noiz exekutatu zen, zein kontu erabili zuen eta ekintzak zer itzuli zuen, eta hori da behar den froga makina berak datorren hilabetean berriro behera egiten duenean.