Váš profil VPN je přímo v Nastavení, a naplánovaná úloha přesto hlásí, že připojení nemůže najít. Nic není poškozeno: nativní úložiště VPN ve Windows je per-user, pokud profil nebyl vytvořen jako all-user, a úloha běží pod účtem, který určí její principal. Úloha obvykle čte telefonní seznam, ve kterém váš profil nikdy nebyl. Dva příkazy a jedno nastavení úlohy stačí k důkazu a stojí za to je spustit, než někdo připojení přestaví.

Dvě úložiště drží stejný název profilu

Nativní profil VPN ve Windows žije v úložišti účtu, který jej vytvořil. Globální úložiště je jiný telefonní seznam, který se plní jen tehdy, když je profil vytvořen s přepínačem pro všechny uživatele v elevované relaci. Obě mohou držet profil se stejným názvem a ani jedno není pohledem na druhé.

Přečtěte obě úložiště ze stejné relace a porovnejte názvy, které vracejí. Přepínač vybírá globální úložiště a jeho čtení obvykle vyžaduje elevovanou relaci:

Get-VpnConnection | Select-Object Name, ServerAddress, TunnelType
Get-VpnConnection -AllUserConnection | Select-Object Name, ServerAddress, TunnelType

Pokud první příkaz profil vypíše a druhý ne, žádná změna přihlašovacích údajů nepomůže úloze běžící pod jiným účtem, protože problémem je členství, nikoli ověřování. Pokud jej vypíší oba, úložiště není příčinou a platí následující oddíl. Toto jediné porovnání uzavře polovinu těchto tiketů. Zaznamenejte, které úložiště odpovědělo a pod jakým účtem jste kontrolu provedli, protože odpověď nemá bez obou faktů smysl.

Přečtěte principal úlohy dřív než její přihlašovací údaje

Otevřete úlohu a přečtěte principal, protože vám řekne, které úložiště úloha vidí. Úloha nastavená na SYSTEM není váš účet s vyššími právy: má vlastní profil a žádný přístup k per-user telefonnímu seznamu, který jste vytvořili při přihlášení. Servisní účet se chová úplně stejně.

Volba spouštění bez ohledu na přihlášení to také mění, protože úloha pak nemá interaktivní relaci, jejíž přihlašovací údaje by si mohla vypůjčit. Nechte akci zapsat whoami do souboru a odpověď si přečtěte, místo abyste ji předpokládali.

Diagnostika z vašeho terminálu o tomto problému nic neříká, protože ukazuje, co vidí váš účet. Spusťte porovnání pod identitou úlohy prostřednictvím jakéhokoli schváleného postupu, který k tomu máte. Výstup vložený z konzoly správce je jiný soubor dat, ne privilegovanější. Pokud takový postup neexistuje, musí úloha odpověď zaznamenat sama, což nastavuje poslední oddíl.

Najít profil není totéž jako přihlásit se

Profil pro všechny uživatele činí konfiguraci viditelnější v širším rozsahu. Nenese uložené heslo z účtu, který jej vytvořil, a nedává jinému účtu soukromý klíč uložený ve vašem uživatelském profilu. Viditelnost a použitelné přihlašovací údaje jsou dva oddělené testy a projití prvního nic neříká o druhém.

Pokud úloha nyní profil najde a selže při ověřování, je to pokrok a tato fáze patří do záznamu. Přesuňte certifikát do úložiště počítače nebo dodajte tajemství vlastním mechanismem nasazení, místo abyste znovu vytvářeli název připojení. Opětovné vytvoření dává stejnou chybu s novějším časovým razítkem. Microsoft dokumentuje dva obory , mezi nimiž přepínač cmdletu vybírá.

Neinteraktivní výzvy jsou pastí za touto fází. Výzvu PIN nebo jednorázový kód nemůže úloha bez plochy zodpovědět, takže profil, který se ručně připojuje bezchybně, může být pod automatizací nepoužitelný.

Čtyři pole, která záznam úlohy potřebuje

Držte hodnoty, které rozhodují o výsledku, pohromadě na jednom místě, protože tři z nich obvykle zůstávají implicitní. Záznam potřebuje čtyři řádky:

  • Cesta akce: skript nebo spustitelný soubor, který úloha spouští, ne zástupce, který se pro jiný účet vyhodnotí jinak.
  • Název profilu: přesný řetězec, protože dvě úložiště mohou držet stejný název ukazující na různé servery.
  • Principal: účet, pod kterým úloha běží, a zda má interaktivní relaci.
  • Metoda ověřování: co tento principal skutečně dokáže dokončit, například certifikát z úložiště počítače místo klíče ve vašem uživatelském profilu.

Tyto čtyři řádky odpovídají na otázku, kterou tiket skutečně klade, totiž jakou konfiguraci automatizace použila. Přežijí také příští přestavbu úlohy, kdy původní autor není nablízku, aby vysvětlil, proč na názvu záleželo. Bez nich se stejná chyba vrací po dalším nasazení a znovu stojí stejné hodiny.

Určete fázi, do které se úloha dostala

Instrumentujte akci, místo abyste hádali z výsledku posledního spuštění. Krátký obal zaznamená identitu, úložiště, které vidí, a výsledek vytáčení na jednom místě:

whoami
Get-VpnConnection -AllUserConnection | Select-Object Name, ServerAddress
rasdial "Office"
schtasks /query /tn "VPN Connect" /v /fo LIST

Příkaz pro vytáčení vypisuje vlastní chybu, která je obvykle jasnější než obecné selhání úlohy. Dotaz vrací principal a poslední kód výsledku vedle sebe, takže identita a výsledek jsou vidět v jednom pohledu. Tyto dva fakty rozhodují, zda je dalším krokem změna úložiště, nebo změna přihlašovacích údajů.

Nakonec oddělte úlohu, která se připojuje po přihlášení uživatele, od tunelu zařízení nebo podporovaného pracovního postupu před přihlášením. Sdílení jednoho profilu není návrhem ani pro jedno z toho a právě pole principal vám říká, který ze tří případů jste postavili. Pokud musí připojení existovat před přihlášením, úložiště profilů per-user je špatná vrstva k opravě.

Související články