Petakan pemacu sebelum VPN sedia? Jadikan ia bergantung pada pelayan
Skrip log masuk memetakan kongsi sebelum terowong mempunyai laluan. Periksa satu pelayan yang hanya menjawab melaluinya, kemudian petakan dalam sesi pengguna dan catat hasilnya.
Huruf pemacu muncul semasa log masuk dan kemudian terbuka sebagai folder kosong, atau dengan pangkah merah dan mesej tentang sumber rangkaian yang tidak tersedia. Kebenaran biasanya baik. Apa yang berlaku ialah arahan pemetaan berjalan dalam tetingkap apabila klien VPN wujud tetapi tiada laluan ke pelayan fail, dan Windows merekodkan kegagalan itu sebagai keadaan pemacu. Pembetulannya ialah berhenti menganggap pemetaan sebagai sesuatu yang berlaku semasa log masuk dan menganggapnya sebagai langkah terakhir dalam urutan sambungan.
Mengapa pemetaan berjalan terlalu awal
Skrip log masuk bermula apabila sesi bermula. Klien VPN yang bersambung semasa log masuk menambah garis masanya sendiri di atas: proses boleh berjalan, penyesuai maya boleh wujud, dan laluan ke subrangkaian pejabat mungkin masih tiada. Ketiga-tiga keadaan ini kelihatan sama dari sudut skrip dan hanya satu daripadanya berfungsi.
Sesetengah persekitaran bertindak balas dengan mengulangi baris gagal yang sama pada setiap log masuk, yang menghasilkan pengguna yang telah belajar mengklik pemacu dua kali dan skrip yang tidak pernah berjaya sendiri.
Pemacu itu sendiri memburukkan keadaan. Pemacu yang dipetakan ialah objek sesi, dan setelah Windows menandakannya sebagai tidak tersedia, ikon itu boleh kekal rosak lama selepas terowong sihat. Itulah sebabnya pemetaan semula secara manual berfungsi sementara skrip kelihatan tidak melakukan apa-apa. Sesi mengingati kegagalan, bukan niat di sebaliknya.
Status bersambung bukan laluan
Ikon VPN dalam dulang memberitahu sama ada terowong naik. Ia tidak mengatakan apa-apa tentang sama ada laluan ke pelayan tertentu wujud, sama ada DNS menyelesaikan nama itu kepada alamat terowong, atau sama ada tembok api pelayan itu sendiri menerima anda.
Itu tiga kegagalan berasingan dengan hasil yang sama kelihatan, dan bergantung pada ikon dulang melakurkannya menjadi satu isyarat yang tidak boleh dipercayai.
Pemeriksaan kesediaan yang menamakan pelayan yang anda benar-benar perlukan membezakannya, kerana ia gagal sehingga laluan tertentu berfungsi, bukan sehingga beberapa antara muka melaporkan dirinya bersambung.
Bergantung pada pelayan, bukan klien
Pilih satu hos yang hanya boleh dicapai melalui terowong dan tunggu ia sebelum memetakan apa-apa. Serpihan di bawah menyambung entri VPN Windows yang disimpan, memeriksa pelayan fail dan kemudian memetakan pemacu.
@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
Ping ialah pemeriksaan kesediaan, bukan ujian kebenaran. Jika ICMP ditapis pada rangkaian anda, periksa perkhidmatan yang anda benar-benar gunakan: net view \\%server% untuk pemeriksaan pantas, atau ujian TCP pendek terhadap port 445 dalam PowerShell. Kedua-duanya bergantung pada perkara yang penting.
Tambah bilangan percubaan yang terhad. Gelung tunggu tanpa had menjadikan terowong rosak sebagai sesi yang tidak pernah selesai log masuk, dan itu panggilan sokongan yang lebih teruk daripada huruf pemacu yang hilang.
Jadikan ia boleh dijalankan semula dan sedar sesi
Jalankan ia dalam sesi pengguna itu sendiri. Tugas yang berjalan sebagai SYSTEM meletakkan pemacu dalam sesi yang sama sekali berbeza, dan pengguna yang log masuk tidak pernah melihat hasilnya. Itu memberi anda skrip yang melaporkan kejayaan dan desktop tanpa pemacu.
Periksa sebelum memetakan, dan buang hanya entri usang. net use Z: /delete mengembalikan ralat apabila huruf itu tidak digunakan, dan ralat itu selamat diabaikan dan bukannya menjadi sebab untuk meninggalkan seluruh skrip. Kekalkan /persistent:no supaya percubaan yang gagal tidak menjadi percubaan sambungan semula kekal kemudian.
Dan jangan letak kata laluan dalam fail. rasdial boleh menggunakan semula kelayakan yang disimpan untuk entri VPN, dan kongsi itu harus mengesahkan sebagai pengguna yang log masuk. Jika kongsi itu benar-benar memerlukan kelayakan berbeza, daftarkannya sekali bagi setiap pengguna dengan cmdkey dan bukannya membenamkannya dalam fail kelompok yang tinggal pada kongsi log masuk. Sesiapa yang boleh membaca kongsi itu boleh membaca kata laluan, dan itu menjadikan kemudahan sebagai insiden.
Menjalankan semula seluruh skrip sepatutnya tidak berbahaya, kerana itulah yang akan berlaku. Pengguna bersambung semula, komputer riba bangun, dan laluan kod yang sama berjalan semula dengan keadaan permulaan yang berbeza.
Catat cukup untuk membuktikan separuh mana yang lewat
Tulis cap masa, hasil pemeriksaan kesediaan dan kod keluar pemetaan ke fail di bawah profil pengguna. Apabila laporan seterusnya tentang pemacu yang hilang tiba, log itu menjawab satu-satunya soalan yang penting: adakah terowong tiba lewat, atau kongsi itu menolak?
Tanpa itu, setiap pengulangan disiasat dari awal, dan kesimpulan biasa ialah perubahan kebenaran yang tidak membaiki apa-apa.
Uji urutan itu sekali daripada but sejuk dan sekali daripada tidur. Kes bangun ialah tempat urutan paling kerap pecah, kerana sesi disambung semula sebelum rangkaian dan skrip melihat mesin yang telah log masuk berjam-jam.