A meghajtóbetűjel megjelenik bejelentkezéskor, majd üres mappaként nyílik meg, vagy piros kereszttel és egy nem elérhető hálózati erőforrásról szóló üzenettel. Az engedélyek általában rendben vannak. Az történt, hogy a csatlakoztatási parancs abban az ablakban futott, amikor a VPN-kliens létezett, de a fájlkiszolgáló felé nem volt útvonal, és a Windows ezt a hibát a meghajtó állapotaként rögzítette. A megoldás, hogy ne tekintsük a csatlakoztatást bejelentkezéskor történő dolognak, hanem egy kapcsolódási sorozat utolsó lépésének.

Miért fut túl korán a csatlakoztatás

A bejelentkezési parancsfájl akkor indul, amikor a munkamenet indul. A bejelentkezés közben kapcsolódó VPN-kliens saját idővonalat tesz rá: a folyamat futhat, a virtuális adapter létezhet, és az irodai alhálózat felé vezető útvonal még hiányozhat. Ez a három állapot egy parancsfájl szemszögéből egyformán néz ki, és csak az egyikük működik.

Egyes környezetek úgy reagálnak, hogy minden bejelentkezéskor megismétlik ugyanazt a sikertelen sort, ami olyan felhasználót eredményez, aki megtanulta kétszer kattintani a meghajtóra, és olyan parancsfájlt, amely soha nem sikerült magától.

Maga a meghajtó rontja a helyzetet. A csatlakoztatott meghajtó munkamenet-objektum, és miután a Windows nem elérhetőként jelölte meg, az ikon még sokáig törött maradhat azután, hogy az alagút egészséges. Ezért működik a kézi újracsatlakoztatás, miközben a parancsfájl úgy tűnik, mintha semmit nem tenne. A munkamenet a hibára emlékszik, nem a mögötte álló szándékra.

A csatlakoztatott állapot nem útvonal

A tálcán lévő VPN-ikon jelzi, hogy az alagút áll-e. Semmit nem mond arról, hogy létezik-e útvonal egy adott kiszolgálóhoz, hogy a DNS feloldja-e azt a nevet az alagút címére, vagy hogy a kiszolgáló saját tűzfala beenged-e.

Ez három különálló hiba azonos látható eredménnyel, és a tálcaikonra való hagyatkozás egyetlen megbízhatatlan jellé olvasztja őket.

Készségellenőrzés, amely megnevezi a valóban szükséges kiszolgálót megkülönbözteti őket, mert addig sikertelen, amíg a konkrét útvonal működik, és nem addig, amíg valamelyik interfész csatlakozottnak nem jelenti magát.

A kiszolgálótól tegye függővé, ne a klienstől

Válasszon egy gazdagépet, amely csak az alagúton keresztül érhető el, és várjon rá, mielőtt bármit csatlakoztatna. Az alábbi részlet csatlakozik egy mentett Windows VPN-bejegyzéshez, megvizsgálja a fájlkiszolgálót, majd csatlakoztatja a meghajtót.

@echo off
set server=fileserver.corp.example
rasdial "Office VPN" /disconnect
rasdial "Office VPN"
:wait
ping -n 1 -w 1000 %server% >nul || (
  timeout /t 5 /nobreak >nul
  goto wait
)
net use Z: \\%server%\share /persistent:no

A ping készenléti próba, nem engedélyteszt. Ha az ICMP szűrve van a hálózatán, inkább azt a szolgáltatást vizsgálja, amelyet valóban használ: net view \\%server% a gyors ellenőrzéshez, vagy egy rövid TCP-teszt a 445-es port ellen a PowerShellben. Bármelyik a lényeges dolgot teszi függővé.

Adjon hozzá korlátozott számú kísérletet. A felső korlát nélküli várakozási ciklus a törött alagutat olyan munkamenetté teszi, amely soha nem fejezi be a bejelentkezést, és ez rosszabb támogatási hívás, mint egy hiányzó meghajtóbetűjel.

Tegye újrafuttathatóvá és munkamenet-tudatossá

A felhasználó saját munkamenetében futtassa. A SYSTEM-ként futó feladat teljesen más munkamenetbe teszi a meghajtót, és a bejelentkezett felhasználó soha nem látja az eredményt. Így olyan parancsfájlt kap, amely sikerről számol be, és egy asztalt, amelyen nincs meghajtó.

Csatlakoztatás előtt ellenőrizze, és csak az elavult bejegyzést távolítsa el. A net use Z: /delete hibát ad vissza, ha a betűjel nincs használatban, és ezt a hibát biztonságos figyelmen kívül hagyni, nem pedig ok arra, hogy feladja a parancsfájl többi részét. Tartsa meg a /persistent:no kapcsolót, hogy egy sikertelen kísérlet később ne váljon állandó újracsatlakozási kísérletté.

És ne tegyen jelszót a fájlba. A rasdial újrahasználhatja a VPN-bejegyzéshez mentett hitelesítő adatokat, és a megosztásnak a bejelentkezett felhasználóként kell hitelesítenie. Ha a megosztásnak valóban más hitelesítő adatokra van szüksége, regisztrálja őket felhasználónként egyszer a cmdkey segítségével, ahelyett hogy egy bejelentkezési megosztáson élő batch-fájlba ágyazná. Bárki, aki olvasni tudja azt a megosztást, a jelszót is el tudja olvasni, és ez a kényelmet incidenssé változtatja.

A teljes parancsfájl újrafuttatásának ártalmatlannak kell lennie, mert pontosan ez fog történni. A felhasználók újracsatlakoznak, a laptopok felébrednek, és ugyanaz a kódútvonal fut le újra más kezdeti állapottal.

Naplózzon eleget annak bizonyításához, melyik fél késett

Írja be az időbélyeget, a készenléti ellenőrzés eredményét és a csatlakoztatás kilépési kódját a felhasználói profil alatti fájlba. Amikor megérkezik a következő jelentés egy hiányzó meghajtóról, az a napló válaszol az egyetlen fontos kérdésre: későn érkezett az alagút, vagy a megosztás utasította el?

Enélkül minden ismétlődést nulláról vizsgálnak, és a szokásos következtetés egy engedélymódosítás, amely semmit nem javít.

Tesztelje a sorozatot egyszer hideg indításból és egyszer alvásból. Az ébredés esete az, ahol a sorrend leggyakrabban elromlik, mert a munkamenet a hálózat előtt folytatódik, és a parancsfájl egy olyan gépet lát, amely már órák óta be van jelentkezve.

Kapcsolódó cikkek