Suorita tehtävä, kun VPN yhdistyy: tapahtuma, kysely vai valtuustieto?
Kirjautumisskripti suoritetaan ennen kuin tunneli on olemassa. Vertaa verkkotapahtuman liipaisinta, resurssin kyselyä ja tallennettuja valtuustietoja siihen, mitä kukin takaa.
Kirjautumisskripti, joka yhdistää aseman tai käynnistää synkronointityön, suoritetaan ennen kuin tunnelilla on osoite, joten se epäonnistuu hiljaa ja käyttäjä korjaa sen käsin joka aamu. Windows ei tarjoa useimmille asiakkaille VPN-kohtaista yhteyspalautusta, mutta se kirjaa verkon muutoksen, ja tuo tietue voi käynnistää työn oikealla hetkellä. Valinta on sen välillä, että reagoidaan tietueeseen, kysellään resurssia tai poistetaan kehote, joka teki epäonnistumisen näkyväksi.
Kolmen mekanismin vertaaminen sen mukaan, mitä ne takaavat, on parempi kuin niiden järjestäminen eleganssin mukaan. Kukin epäonnistuu eri tavalla, ja epäonnistumistila on se, jonka kanssa elät jälkeenpäin.
Miksi kirjautuminen käynnistyy liian aikaisin
Kirjautuminen ja käynnistys suoritetaan ennen kuin VPN-sovitin saa osoitteensa, joten sillä hetkellä yritetyllä asemayhdistyksellä, sisäisellä URL-osoitteella tai tietokantayhteydellä ei ole reittiä eikä selvittäjää. Pyyntö epäonnistuu, ja istunto jää tilaan, jonka käyttäjän on korjattava käsin. Saman skriptin siirtäminen käynnistyskansioon ei muuta mitään, koska järjestysongelma kulkee sen mukana. Liipaisimen on oltava verkon muutos eikä istunnon tapahtuma.
Kirjautumisen yhteyteen mielivaltaisella viiveellä ajastettu tehtävä näyttää korjaukselta ja on oikeastaan arvaus. Se toimii nopealla yhteydellä ja epäonnistuu hitaalla, mikä on hyödyttömin luotettavuuden muoto.
Kolme koukkua vertailussa
Mekanismit eroavat siinä, mitä ne tarkkailevat, kuinka nopeasti ne reagoivat ja mitä ne tekevät myöhemmin päivällä tapahtuvalle uudelleenyhdistämiselle. Taulukko vertaa niitä näillä kolmella kohdalla, ei siinä, kuinka älykkäältä kukin kuulostaa.
| 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 |
Lue taulukkoa rivi riviltä. Tapahtumakoukku on nopein ja meluisin, koska Windows kirjaa jokaisen verkon, myös kahvilan Wi-Fi-verkon, joten toiminnon on varmistettava resurssi ennen kuin se tekee mitään. Kysely on hitaampi ja tarkempi, koska se onnistuu täsmälleen silloin, kun jako tai isäntänimi vastaa, eikä se tarvitse tietoa siitä, mikä asiakasohjelma on asennettu. Tallennetut valtuustiedot eivät ole lainkaan kilpaileva vaihtoehto: ne poistavat salasanakehotteen, mikä on toinen ja riippumaton syy siihen, miksi kirjautumisen aikainen yhdistäminen epäonnistuu.
Kahden ensimmäisen välinen valinta riippuu siitä, onko asiakkaalla käyttökelpoinen tapahtuma. Jos on, tapahtuma ja resurssin tarkistus on parempi oletus.
Rakenna tapahtumaliipaisin oikein
Tietue sijaitsee lokissa Microsoft-Windows-NetworkProfile/Operational, ja ID 10001 merkitsee verkkoa, joka juuri yhdistyi. Luo tehtävä Tapahtuman yhteydessä -liipaisimella, joka kohdistuu tuohon lokiin, tuohon palveluntarjoajan nimeen ja tuohon tunnisteeseen. Jokainen verkko, johon kone liittyy, laukaisee sen, joten toiminto tarvitsee vartioehdon eikä oletusta, ja jos työ koskee yhdistettyjä asemia, sen pitäisi suorittua vain käyttäjän ollessa kirjautuneena.
Vartioehdon pitäisi testata sitä, mitä tehtävä todella tarvitsee, kuten jakopolkua tai palveluporttia, ja poistua hiljaa, kun se ei ole tavoitettavissa. Sovittimen nimen testaaminen ei riitä, koska asiakasohjelma voi käyttää yhtä sovitinta useissa profiileissa. Hiljainen poistuminen pitää lokin luettavana ja estää uudelleenyritysten myrskyn verkkoa vastaan, joka ei koskaan tarjoa resurssia.
Testaa, että tehtävä suoritetaan oikealla hetkellä
Todista ajoitus, älä kokoonpano. Alla olevat komennot näyttävät tehtävän määrityksen, viimeisimmät verkkoprofiilin tapahtumat ja sen, onko resurssi tavoitettavissa siltä tililtä, jonka alla tehtävä suoritetaan. Suorita ne aidon uudelleenyhdistämisen jälkeen, älä manuaalisen käynnistyksen jälkeen.
schtasks /query /tn "VpnPostConnect" /v /fo LIST
Get-WinEvent -LogName Microsoft-Windows-NetworkProfile/Operational -MaxEvents 10
Test-Path \\fileserver\share
whoami
Tehtävän historian merkintä, joka on olemassa, kun mikään verkkotapahtuma ei osu kohdalleen, tarkoittaa, että liipaisin on väärä eikä toiminto. Jos tapahtumat näkyvät eikä tehtävä käynnisty, tehtävä saattaa suorittua tilillä, joka ei näe resurssia, ja tilin tuloste on vihje. Resurssin tarkistus, joka menee läpi, kun yhdistäminen vielä puuttuu, viittaa istunnon kontekstiin eikä yhteyteen. Jokainen noista kolmesta havainnosta vie sinut eri korjaukseen.
Kirjoita yksi lokirivi jokaista suoritusta kohden osoitteen, resurssin tuloksen ja lopputuloksen kanssa. Seuraava epäonnistuminen näyttää silloin, suorittuiko tehtävä aikaisin, väärässä verkossa vai ei lainkaan.