VPNaren leihoa ireki eta gero hamar segundo lo egiten dituen scripta asmatzen ari da, eta asmakizuna okerra da bi noranzkoetan: kopiatzen hasten da tunela erabilgarri egon aurretik edo itxaroten du lana has zitekeen arren. Bi emaitzetako batek ere ez du esaten autentifikazioa amaitu den. Erabili komandoaren emaitza propioa eta gero egin zerbitzuari benetan erantzun dezakeen galdera bat. Bi urrats horien ordena da diseinu osoa.

Zer jakinarazten du komandoak benetan

Instalatutako komando-lerroko tresnak ulertzen duen Windows profil natiborako, rasdial.exe izeneko sarrera bat markatzen du eta prozesuaren irteera-kodea itzultzen du. Kode horrek markatze-saialdia deskribatzen du: zeroak konexioa profil horretarako ezarri zela esan nahi du, eta zero ez denak kodeak adierazten duen fasean huts egin zuela. Irakurri geruza bakarraren emaitza gisa, ez lanarena.

Emaitzak ez du ezer esaten helbide-esleipenari, DNS pribatuari, gehitutako bideei edo zerbitzari jakin batera iristeko baimenari buruz. Horiek guztiak markatze arrakastatsuaren ondoren gertatzen dira, eta horietako edozein oker egon daiteke oraindik. Hutsune hori da konektatuta ikonoa eta kopia huts egina hain sarritan elkarrekin agertzearen arrazoia.

Gorde emaitza beste ezer exekutatu aurretik

Hasi lanak exekutatuko duen konturako profila existitzen dela baieztatzen, ez bakarrik probatzeko erabiltzen ari zaren konturako:

Get-VpnConnection -Name "Contoso-Office"
Get-VpnConnection -Name "Contoso-Office" -AllUserConnection

Gero markatu eta irakurri kodea berehala. PowerShell-ek emaitza natiboa $LASTEXITCODE gordetzen du hurrengo kanpoko komandoa exekutatu arte bakarrik, beraz markatzearen eta egiaztapenaren artean dabiltzan ping batek irakurri nahi zenuen balioa suntsitzen du. Esleitu lehenik zure aldagaiari eta gero erabaki zer egin.

& rasdial.exe "Contoso-Office"
$dial = $LASTEXITCODE
if ($dial -ne 0) { throw "rasdial failed with $dial" }

Erregistratu kodea errore-testu ez-sekretuarekin batera, zeren falta den sarrera batek, baztertutako kredentzialek eta denbora-mugek erantzun ezberdinak eskatzen dituzte. Taulak emaitza ohikoak hurrengo urratsarekin lotzen ditu.

ResultWhat it indicatesNext step
0The dial completedProbe the resource, do not start writing yet
691The credential or authentication method was rejectedFix the account or method, do not retry in a loop
623The named entry was not foundFix the profile name or its scope
Other non-zeroTransport, timeout or adapter failureRead the message, then check the path

Prestasuna baliabidea da, ez tunela

Markatzeak arrakasta duenean, probatu lanak behar duen gauza. Partekatutako baliabide batek, API-ren amaierako puntu batek edo datu-basearen portu batek webgune publiko batek baino prestutasun-proba hobea ematen du, webgune publiko batek funtzionatzen duen edozein bidetik erantzuten duelako eta pribatuari buruz ezer ez duelako frogatzen. Aukeratu aplikazioak berak mendekoa duen proba. TCP konexio arrakastatsu batek bideratzea eta iragazketa irekita daudela esaten dizu, eta hori da lehen idazketak behar duenaren zatirik handiena:

Test-NetConnection -ComputerName files.contoso.example -Port 445

Mugatu saialdiak eta erregistratu zein fasek huts egin zuen. Baztertutako kredentzialek scripta gelditu behar dute, berriro saiatzeko begizta elikatu beharrean; oraindik agertu ez den DNS izen batek berriro saiatzeko saialdi labur batzuk merezi ditu; inoiz irekitzen ez den portu bat bezeroaren gaineko bideratze edo politika arazoa da.

Konexioa lana hasi aurretik bazegoen, utzi bakean. Igi ez zenuen saio bat deskonektatzeak erabiltzailearen beste lana eteten du, beraz erregistratu saioa nori dagokion eta zein amaiera den egokia.

Mugatu profila lana exekutatzen duen kontura

Programatutako zereginak bere identitate eta saioarekin exekutatzen da, eta zure mahaigainean funtzionatzen duen profila ikusezina izan daiteke han. Errepikatu ikusgaitasun-egiaztapena eta markatzea zereginaren kontuarekin programazioan fidatu aurretik. Mantendu pasahitza komando-lerrotik kanpo ere: argumentuak beste prozesu batzuentzat ikusgai dira eta sarritan erregistroetan amaitzen dute.

Inplementazioak nabigatzaileko eskaera, txartel adimendunaren ukipen edo MFA onarpen bat eskatzen badu, elkarreragin hori diseinuaren parte da eta ezin da automatizatu tekla-sakatzeak simulatzen. Erabili kasu horretarako onartzen den bezeroa eta utzi giza urratsa gertatzen.

Azken scriptaren forma laburra izaten jarraitzen du: egiaztatu profila, markatu, irakurri kodea, probatu baliabidea eta gero hasi lana. Urrats bakoitzak aurrekoak ezin zuen galdera bat erantzuten du, eta horietako batek ere ez du lo egitearen mendean egiten.

Erlazionatutako artikuluak