Ett inloggningsskript som mappar en enhet eller startar ett synkroniseringsjobb körs innan tunneln har en adress, så det misslyckas tyst och användaren reparerar det för hand varje morgon. Windows erbjuder inte de flesta klienter någon återkallelse per VPN-anslutning, men det loggar nätverksändringen, och den posten kan starta arbetet i rätt ögonblick. Valet står mellan att reagera på den posten, att avfråga resursen och att ta bort uppmaningen som gjorde felet synligt.

Att jämföra de tre mekanismerna efter vad de garanterar är bättre än att rangordna dem efter elegans. Var och en misslyckas olika, och felet är det du lever med efteråt.

Varför inloggningen startar för tidigt

Inloggning och start körs innan VPN-adaptern får sin adress, så en enhetsmappning, en intern URL eller en databasanslutning som försöks i det ögonblicket har varken rutt eller upplösare. Begäran misslyckas, och sessionen lämnas i ett tillstånd som användaren måste reparera manuellt. Att flytta samma skript till startmappen ändrar ingenting, eftersom ordningsproblemet följer med. Triggern måste vara en nätverksändring och inte en sessionshändelse.

En schemalagd uppgift vid inloggning med en godtycklig fördröjning ser ut som en åtgärd och är egentligen en gissning. Den fungerar på en snabb länk och misslyckas på en långsam, vilket är den minst användbara typen av tillförlitlighet.

Tre krokar jämförda

Mekanismerna skiljer sig i vad de observerar, hur snabbt de reagerar och vad de gör vid en återanslutning senare på dagen. Tabellen jämför dem på dessa tre punkter och inte på hur smart varje låter.

MechanismReacts toCovers a mid-session reconnectTypical failure
Network profile eventA network connect recordYes, when the event repeatsRuns on the wrong network
Resource poll with backoffThe resource becoming reachableYesLog noise and a wasted window
Stored credentials aloneNothing; it removes a promptNoStill fires before the tunnel

Läs tabellen rad för rad. Händelsekroken är snabbast och mest högljudd, eftersom Windows registrerar varje nätverk, inklusive kaféets Wi-Fi, så åtgärden måste verifiera resursen innan den gör något. Avfrågningen är långsammare och mer exakt, eftersom den lyckas precis när delningen eller värdnamnet svarar, och den behöver inte veta vilken klient som är installerad. Sparade inloggningsuppgifter är inte alls ett konkurrerande alternativ: de tar bort lösenordsuppmaningen, vilket är en andra och oberoende anledning till att en mappning vid inloggning misslyckas.

Valet mellan de två första beror på om det finns en användbar händelse på klienten. Där det finns är en händelse plus en resurskontroll det bättre standardvalet.

Bygg händelsetriggern rätt

Posten finns i loggen Microsoft-Windows-NetworkProfile/Operational, och ID 10001 markerar ett nätverk som just anslöt. Skapa uppgiften med en Vid en händelse-trigger riktad mot den loggen, det leverantörsnamnet och den identifieraren. Varje nätverk som datorn ansluter till utlöser den, så åtgärden behöver en skyddsklausul och inte ett antagande, och den bör bara köras medan användaren är inloggad om arbetet rör mappade enheter.

Skyddsklausulen bör testa vad uppgiften faktiskt behöver, som en delningssökväg eller en tjänstport, och avsluta tyst när den inte går att nå. Att testa adapternamnet räcker inte, eftersom en klient kan återanvända en adapter över flera profiler. En tyst avslutning håller loggen läsbar och förhindrar en storm av nya försök mot ett nätverk som aldrig kommer att leverera resursen.

Testa att uppgiften körs i rätt ögonblick

Bevisa tidpunkten och inte konfigurationen. Kommandona nedan visar uppgiftsdefinitionen, de senaste nätverksprofilhändelserna och om resursen är nåbar från kontot som uppgiften körs under. Kör dem efter en riktig återanslutning och inte efter en manuell start.

schtasks /query /tn "VpnPostConnect" /v /fo LIST
Get-WinEvent -LogName Microsoft-Windows-NetworkProfile/Operational -MaxEvents 10
Test-Path \\fileserver\share
whoami

En uppgiftshistorikpost som finns medan ingen nätverkshändelse stämmer betyder att triggern är fel och inte åtgärden. Om händelserna visas och uppgiften inte körs kan uppgiften köra under ett konto som inte ser resursen, och kontots utdata är ledtråden. En resurskontroll som går igenom medan mappningen fortfarande saknas pekar på sessionskontexten och inte på anslutningen. Var och en av de tre observationerna leder till olika åtgärder.

Skriv en logglinje per körning med adressen, resursresultatet och utfallet. Nästa fel visar då om uppgiften kördes tidigt, kördes på fel nätverk eller inte kördes alls.

Relaterade artiklar