Užduoties vykdymas prisijungus prie VPN: įvykis, apklausa ar prisijungimo duomenys?
Prisijungimo scenarijus vykdomas prieš atsirandant tuneliui. Palyginkite tinklo įvykio trigerį, ištekliaus apklausą ir išsaugotus prisijungimo duomenis pagal tai, ką kiekvienas garantuoja.
Prisijungimo scenarijus, kuris prijungia diską arba paleidžia sinchronizavimo užduotį, vykdomas prieš tuneliui gaunant adresą, todėl jis tyliai nepavyksta ir naudotojas kiekvieną rytą jį taiso rankiniu būdu. Windows daugumai klientų nesiūlo kiekvieno VPN prisijungimo atgalinio iškvietimo, bet įrašo tinklo pasikeitimą, ir šis įrašas gali pradėti darbą tinkamu momentu. Pasirinkimas yra tarp reakcijos į tą įrašą, ištekliaus apklausos ir raginimo, kuris padarė klaidą matomą, pašalinimo.
Trijų mechanizmų palyginimas pagal tai, ką jie garantuoja, yra geresnis už jų rikiavimą pagal eleganciją. Kiekvienas nepavyksta savaip, ir būtent gedimo būdas yra tai, su kuo vėliau gyvenate.
Kodėl prisijungimas paleidžiamas per anksti
Prisijungimas ir paleidimas vykdomi prieš VPN adapteriui gaunant adresą, todėl tuo momentu bandomas disko prijungimas, vidinis URL ar duomenų bazės ryšys neturi nei maršruto, nei sprendėjo. Užklausa nepavyksta, o sesija lieka būsenoje, kurią naudotojas turi taisyti rankiniu būdu. To paties scenarijaus perkėlimas į paleidimo aplanką nieko nekeičia, nes eiliškumo problema keliauja kartu. Trigeris turi būti tinklo pasikeitimas, o ne sesijos įvykis.
Suplanuota užduotis prisijungiant su savavališku vėlavimu atrodo kaip pataisa ir iš tikrųjų yra spėjimas. Ji veikia greitoje jungtyje ir nepavyksta lėtoje, o tai yra mažiausiai naudinga patikimumo rūšis.
Trys kabliukai palyginti
Mechanizmai skiriasi tuo, ką stebi, kaip greitai reaguoja ir ką daro vėliau dieną įvykus pakartotiniam prisijungimui. Lentelė juos lygina šiais trimis aspektais, o ne tuo, kaip išmaniai kiekvienas skamba.
| Mechanism | Reacts to | Covers a mid-session reconnect | Typical failure |
|---|---|---|---|
| Network profile event | A network connect record | Yes, when the event repeats | Runs on the wrong network |
| Resource poll with backoff | The resource becoming reachable | Yes | Log noise and a wasted window |
| Stored credentials alone | Nothing; it removes a prompt | No | Still fires before the tunnel |
Skaitykite lentelę eilutė po eilutės. Įvykio kabliukas yra greičiausias ir triukšmingiausias, nes Windows įrašo kiekvieną tinklą, įskaitant kavinės Wi-Fi, todėl veiksmas turi patikrinti išteklių prieš ką nors darydamas. Apklausa yra lėtesnė ir tikslesnė, nes ji pavyksta tiksliai tada, kai atsako bendrinamas aplankas arba pagrindinio kompiuterio vardas, ir jai nereikia žinoti, kuris klientas įdiegtas. Išsaugoti prisijungimo duomenys visai nėra konkuruojanti parinktis: jie pašalina slaptažodžio raginimą, o tai yra antra ir nepriklausoma priežastis, kodėl prisijungimo metu atliekamas disko prijungimas nepavyksta.
Pasirinkimas tarp pirmųjų dviejų priklauso nuo to, ar kliente yra naudotinas įvykis. Kur yra, įvykis kartu su ištekliaus patikrinimu yra geresnė numatytoji reikšmė.
Teisingai sukurkite įvykio trigerį
Įrašas yra žurnale Microsoft-Windows-NetworkProfile/Operational, o ID 10001 žymi ką tik prisijungusį tinklą. Sukurkite užduotį su trigeriu Įvykus įvykiui, nukreiptu į tą žurnalą, tą teikėjo vardą ir tą identifikatorių. Kiekvienas tinklas, prie kurio prisijungia kompiuteris, jį suaktyvins, todėl veiksmui reikia apsauginės sąlygos, o ne prielaidos, ir jis turėtų būti vykdomas tik kol naudotojas prisijungęs, jei darbas liečia prijungtus diskus.
Apsauginė sąlyga turėtų tikrinti tai, ko užduočiai iš tikrųjų reikia, pavyzdžiui, bendrinamo aplanko kelią ar paslaugos prievadą, ir tyliai baigti, kai tai nepasiekiama. Tikrinti adapterio vardą nepakanka, nes klientas gali naudoti vieną adapterį keliuose profiliuose. Tylus pasitraukimas palaiko žurnalą įskaitomą ir apsaugo nuo pakartotinių bandymų audros prieš tinklą, kuris niekada nepatieks ištekliaus.
Patikrinkite, ar užduotis vykdoma tinkamu momentu
Įrodykite laiką, o ne konfigūraciją. Toliau pateiktos komandos rodo užduoties apibrėžimą, naujausius tinklo profilio įvykius ir tai, ar išteklius pasiekiamas iš paskyros, su kuria vykdoma užduotis. Vykdykite jas po tikro pakartotinio prisijungimo, o ne po rankinio paleidimo.
schtasks /query /tn "VpnPostConnect" /v /fo LIST
Get-WinEvent -LogName Microsoft-Windows-NetworkProfile/Operational -MaxEvents 10
Test-Path \\fileserver\share
whoami
Užduočių istorijos įrašas, kuris egzistuoja, kai nesutampa nė vienas tinklo įvykis, reiškia, kad klaidingas yra trigeris, o ne veiksmas. Jei įvykiai atsiranda, o užduotis nevykdoma, užduotis gali būti vykdoma paskyroje, kuri nemato ištekliaus, ir paskyros išvestis yra užuomina. Ištekliaus patikrinimas, kuris pavyksta, kol prijungimo dar nėra, rodo sesijos kontekstą, o ne ryšį. Kiekvienas iš tų trijų pastebėjimų veda prie kitos pataisos.
Kiekvienam vykdymui rašykite vieną žurnalo eilutę su adresu, ištekliaus rezultatu ir baigtimi. Tada kitas gedimas parodys, ar užduotis buvo paleista anksti, ar veikė netinkamame tinkle, ar nebuvo paleista visai.