Welk telefoonboek doorzoekt een SYSTEM-taak op VPN-profielen?
Een taak wordt uitgevoerd als een account, en native VPN-profielen zijn per gebruiker tenzij ze als profiel voor alle gebruikers zijn gemaakt. Vergelijk beide opslagplaatsen voordat u iets opnieuw opbouwt.
Uw VPN-profiel staat gewoon in Instellingen, en de geplande taak meldt nog steeds dat hij de verbinding niet kan vinden. Niets is beschadigd: de native Windows VPN-opslag is per gebruiker, tenzij het profiel is gemaakt als profiel voor alle gebruikers, en een taak wordt uitgevoerd als het account dat de principal ervan noemt. Meestal leest de taak een telefoonboek dat uw profiel nooit bevatte. Twee opdrachten en één taakinstelling zijn genoeg om dat te bewijzen, en ze zijn het waard om te draaien voordat iemand de verbinding opnieuw opbouwt.
Twee opslagplaatsen bevatten dezelfde profielnaam
Een native Windows VPN-profiel staat in de opslag van het account dat het heeft gemaakt. De globale opslag is een ander telefoonboek, dat alleen wordt gevuld wanneer het profiel met de schakelaar voor alle gebruikers in een verhoogde sessie wordt gemaakt. Beide kunnen een profiel met dezelfde naam bevatten, en geen van beide is een weergave van de ander.
Lees beide opslagplaatsen uit dezelfde sessie en vergelijk de namen die ze teruggeven. De schakelaar selecteert de globale opslag, en het lezen ervan vereist meestal een verhoogde sessie:
Get-VpnConnection | Select-Object Name, ServerAddress, TunnelType
Get-VpnConnection -AllUserConnection | Select-Object Name, ServerAddress, TunnelType
Als de eerste opdracht het profiel vermeldt en de tweede niet, helpt geen enkele wijziging van inloggegevens een taak die onder een ander account draait, omdat lidmaatschap het probleem is en niet authenticatie. Als beide het vermelden, is de opslag niet de oorzaak en geldt het volgende gedeelte. Die ene vergelijking sluit de helft van deze tickets. Noteer welke opslag antwoordde en onder welk account u de controle hebt uitgevoerd, want het antwoord is betekenisloos zonder beide feiten.
Lees de principal van de taak vóór zijn inloggegevens
Open de taak en lees de principal, want die vertelt u welke opslag de taak kan zien. Een taak die is ingesteld om als SYSTEM te draaien is niet uw account met extra rechten: hij heeft zijn eigen profiel en geen toegang tot het telefoonboek per gebruiker dat u hebt gemaakt terwijl u was aangemeld. Een serviceaccount gedraagt zich precies zo.
De optie om te draaien ongeacht of u bent aangemeld verandert dit ook, want de taak heeft dan geen interactieve sessie waarvan hij inloggegevens kan lenen. Laat de actie whoami in een bestand schrijven en lees het antwoord in plaats van het aan te nemen.
Diagnostiek van uw eigen terminal zegt niets over dit probleem, want die laat zien wat uw account ziet. Voer de vergelijking uit onder de identiteit van de taak via welk goedgekeurd proces u daarvoor ook hebt. Uitvoer die uit een beheerdersconsole is geplakt is een andere dataset, niet een meer bevoorrechte. Als zo'n proces niet bestaat, moet de taak het antwoord zelf vastleggen, wat het laatste gedeelte opzet.
Het profiel vinden is niet aanmelden
Een profiel voor alle gebruikers maakt de configuratie breder zichtbaar. Het draagt niet het opgeslagen wachtwoord van het account dat het heeft gemaakt, en het geeft een ander account niet de persoonlijke sleutel die in uw gebruikersprofiel is opgeslagen. Zichtbaarheid en bruikbare inloggegevens zijn twee afzonderlijke tests, en het halen van de eerste zegt niets over de tweede.
Als de taak het profiel nu vindt en bij authenticatie faalt, is dat vooruitgang en hoort die fase in het verslag. Verplaats het certificaat naar de machineopslag, of lever het geheim via het eigen mechanisme van de implementatie, in plaats van de verbindingsnaam opnieuw aan te maken. Opnieuw aanmaken geeft dezelfde fout met een nieuwer tijdstempel. Microsoft documenteert de twee bereiken waaruit de cmdlet-schakelaar kiest.
Niet-interactieve uitdagingen zijn de val achter die fase. Een pincodevraag of een eenmalige code kan een taak zonder bureaublad niet beantwoorden, dus een profiel dat met de hand perfect inbelt kan onder automatisering onbruikbaar zijn.
Vier velden die het taakverslag nodig heeft
Houd de waarden die de uitkomst bepalen bij elkaar op één plek, want drie ervan blijven meestal impliciet. Het verslag heeft vier regels nodig:
- Actiepad: het script of het uitvoerbare bestand dat de taak start, niet een snelkoppeling die voor een ander account anders uitpakt.
- Profielnaam: de exacte tekenreeks, want twee opslagplaatsen kunnen dezelfde naam bevatten die naar verschillende servers wijst.
- Principal: het account waaronder de taak draait, en of het een interactieve sessie heeft.
- Authenticatiemethode: wat die principal echt kan voltooien, bijvoorbeeld een certificaat uit de machineopslag in plaats van een sleutel in uw gebruikersprofiel.
Die vier regels beantwoorden de vraag die het ticket eigenlijk stelt, namelijk welke configuratie de automatisering gebruikte. Ze overleven ook de volgende herbouw van de taak, wanneer de oorspronkelijke auteur er niet is om uit te leggen waarom de naam belangrijk was. Zonder hen komt dezelfde fout na de volgende implementatie terug en kost opnieuw dezelfde uren.
Bepaal de fase die de taak heeft bereikt
Instrumenteer de actie in plaats van te gissen uit het resultaat van de laatste run. Een korte wrapper legt de identiteit, de zichtbare opslag en het inbelresultaat op één plek vast:
whoami
Get-VpnConnection -AllUserConnection | Select-Object Name, ServerAddress
rasdial "Office"
schtasks /query /tn "VPN Connect" /v /fo LIST
Het inbelcommando drukt zijn eigen fout af, die meestal duidelijker is dan een algemene taakfout. De query geeft de principal en de laatste resultaatcode naast elkaar terug, zodat identiteit en uitkomst in één weergave zichtbaar zijn. Die twee feiten bepalen of de volgende stap een opslagwijziging of een wijziging van inloggegevens is.
Ten slotte scheidt u een taak die verbinding maakt nadat een gebruiker zich aanmeldt van een apparaattunnel of een ondersteunde werkstroom vóór aanmelding. Eén profiel delen is voor geen van beide een ontwerp, en het principal-veld is wat u vertelt welke van de drie u hebt gebouwd. Als de verbinding vóór aanmelding moet bestaan, is de profielopslag per gebruiker de verkeerde laag om te repareren.