Verbinden met de VPN speelt je aanmeldscript niet opnieuw af
Aanmeldscripts draaien bij aanmelding, niet wanneer er een tunnel verschijnt. Scheid opstarten, aanmelden en achtergrondvernieuwing, en activeer het werk dan op de verbinding.
Je gebruiker meldt zich thuis aan, verbindt de VPN en wacht op de stationstoewijzing die op kantoor vroeger vanzelf verscheen. De tunnel komt op, het domein antwoordt, en niets wordt toegewezen. Niets is stuk: een aanmeldscript draait bij aanmelding, en een tunnel die twintig minuten na aanvang van de sessie wordt geopend is geen aanmelding. Beide als dezelfde gebeurtenis lezen stuurt mensen op zoek naar een VPN-storing die niet bestaat.
Vier beslissingen veranderen de verrassing in een werkstroom die zich gedraagt, en de eerste is simpelweg weten op welke gebeurtenissen een script rijdt.
Scripts rijden op levenscyclusgebeurtenissen die je niet kunt herhalen
Beleid aan de computekant wordt toegepast bij het opstarten van de machine en beleid aan de gebruikerskant bij aanmelding, terwijl een achtergrondvernieuwing dezelfde instellingen doorloopt zonder iets opnieuw te starten. Die vernieuwing verwerkt de scriptextensie, maar voert de afzonderlijke scripts niet opnieuw uit, die alleen bij opstarten, afsluiten, aanmelden of afmelden afgaan. Daarom kan gpupdate /force succes melden terwijl de toewijzing nog ontbreekt, en een schone vernieuwing is geen bewijs dat het script iets deed.
De Microsoft-referentie over beleidsverwerking trekt precies die grens tussen het verwerken van de extensie en het uitvoeren van wat erin zit, en dat is de pagina die je aanhaalt wanneer iemand erop staat dat een vernieuwing het script opnieuw had moeten afspelen.
Niet elk script mislukt ook offline. Een script dat alleen lokale of gecachte inhoud leest, kan gedeeltelijk zijn geslaagd, terwijl een script dat een share aanraakt stil mislukt en geen duidelijk spoor achterlaat. Controleer het werkelijke scriptpad en wat het bereikt voordat je het netwerk de schuld geeft. Dezelfde controle hoort bij elke bewering dat een script niet bij aanmelding draait, want een geplande taak of een clientactie kan het werk doen waar niemand kijkt.
Bind het werk aan de verbinding, niet aan de aanmelding
Drie verschillende klussen schuilen achter de term aanmeldscript: een station toewijzen nadat de gebruiker verbindt, machineconfiguratie toepassen voordat iemand zich aanmeldt, en bijgewerkt beleid ophalen. Ze hebben verschillende deadlines, en alleen de tweede heeft echt verbinding nodig vóór aanmelding. Schrijf de eis als een zin met een deadline, bijvoorbeeld: deze toewijzing moet binnen een minuut na het opkomen van de tunnel bestaan.
Gebruik voor werk dat na de verbinding moet gebeuren een taak die door de verbinding wordt geactiveerd of de verbindingsactie die de client ondersteunt. Controleer welke gebeurtenis de client werkelijk uitzendt, want een gebeurtenis die de native Windows VPN-client opwerpt, wordt niet door een client van derden opgeworpen. Voor machineconfiguratie die vóór aanmelding moet komen, is het ondersteunde antwoord een apparaattunnel of een ander ontwerp vóór aanmelding, niet een taak die afgaat zodra het bureaublad verschijnt. Voer het werk uit in de identiteit en sessie die het nodig hebben, want een toewijzing die als SYSTEM is gemaakt, belandt in een sessie die de gebruiker nooit ziet.
Test de gereedheid voordat je handelt, en faal luid
Een verbindingsgebeurtenis kan binnenkomen voordat DNS of de fileserver bruikbaar is, dus de taak moet testen wat hij nodig heeft in plaats van aan te nemen. Los de specifieke naam op, probeer de specifieke verbinding, en probeer opnieuw met een grens en een vertraging: Resolve-DnsName files.corp.example in een korte lus scheidt nog-niet van nooit. Meld na de laatste poging een concrete fout, met de naam en de fout erin.
Een eindeloze lus zonder log is niet te onderscheiden van een taak die nooit begon, en verbergt het verschil tussen een verouderde referentie en een firewallregel.
Verifieer vier dingen, maak het dan herhaalbaar
Registreer tijdens de pilot vier waarnemingen in plaats van één: de verbindingsgebeurtenis is afgegaan, de taak is gestart, de resource heeft geantwoord, en de gevraagde wijziging is echt doorgevoerd. Als het log stopt bij taak gestart, blijft de echte fout onzichtbaar hoe lang je ook wacht. Voer dan gpresult /scope user /v uit om te zien welk beleid de sessie denkt te hebben, en vergelijk dat met de instelling die je verwachtte. Een rapport dat de GPO als toegepast vermeldt, zegt nog steeds niets over een toewijzing.
Maak het werk veilig om te herhalen voordat je het uitbreidt, want de client maakt opnieuw verbinding en de taak gaat opnieuw af. Controleer of de toewijzing of configuratie al bestaat voordat je die maakt, en noteer wat je hebt gevonden. Dubbel werk na elke kortstondige herverbinding is hoe een behulpzame taak een incident wordt.
Waar een automatische trigger ongeschikt is, is een goedgekeurde gebruikersactie die hetzelfde ondertekende script uitvoert een legitiem ontwerp. Die maakt de timing expliciet in plaats van te doen alsof er een aanmeldgebeurtenis heeft plaatsgevonden.