Memetakan drive sebelum VPN siap? Jadikan bergantung pada server
Skrip logon memetakan share sebelum tunnel punya rute. Periksa satu server yang hanya menjawab melaluinya, lalu petakan di sesi pengguna dan catat hasilnya.
Huruf drive muncul saat logon lalu terbuka sebagai folder kosong, atau dengan tanda silang merah dan pesan tentang sumber daya jaringan yang tidak tersedia. Izin biasanya baik-baik saja. Yang terjadi adalah perintah pemetaan berjalan pada jendela waktu ketika klien VPN ada tetapi tidak ada rute ke server file, dan Windows mencatat kegagalan itu sebagai status drive. Perbaikannya adalah berhenti memperlakukan pemetaan sebagai sesuatu yang terjadi saat logon dan memperlakukannya sebagai langkah terakhir dari urutan koneksi.
Mengapa pemetaan berjalan terlalu awal
Skrip masuk dimulai saat sesi dimulai. Klien VPN yang terhubung selama logon menambahkan garis waktunya sendiri di atasnya: prosesnya bisa berjalan, adaptor virtualnya bisa ada, dan rute ke subnet kantor bisa masih hilang. Ketiga keadaan itu terlihat sama dari sudut pandang skrip dan hanya satu yang berfungsi.
Sebagian lingkungan merespons dengan mengulangi baris gagal yang sama pada setiap logon, yang menghasilkan pengguna yang sudah belajar mengklik drive dua kali dan skrip yang belum pernah berhasil sendiri.
Drivenya sendiri memperburuk ini. Drive yang dipetakan adalah objek sesi, dan setelah Windows menandainya tidak tersedia, ikonnya bisa tetap rusak jauh setelah tunnel sehat. Itulah sebabnya memetakan ulang secara manual berhasil sementara skrip tampak tidak melakukan apa pun. Sesi mengingat kegagalan, bukan niat di baliknya.
Status terhubung bukanlah jalur
Ikon VPN di baki sistem melaporkan apakah tunnel menyala. Ia tidak mengatakan apa pun tentang apakah ada rute ke server tertentu, apakah DNS menerjemahkan nama itu ke alamat tunnel, atau apakah firewall server itu sendiri menerima Anda.
Itu tiga kegagalan terpisah dengan hasil yang terlihat sama, dan bergantung pada ikon baki meleburkannya menjadi satu sinyal yang tidak dapat diandalkan.
Pemeriksaan kesiapan yang menyebut server yang benar-benar Anda butuhkan membedakannya, karena ia gagal sampai jalur tertentu berfungsi, bukan sampai beberapa antarmuka melaporkan dirinya terhubung.
Bergantunglah pada server, bukan pada klien
Pilih satu host yang hanya dapat dijangkau melalui tunnel dan tunggu ia sebelum memetakan apa pun. Fragmen di bawah menghubungkan entri VPN Windows yang tersimpan, memeriksa server file, lalu memetakan drive.
@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 adalah pemeriksaan kesiapan, bukan uji izin. Jika ICMP difilter di jaringan Anda, periksa layanan yang benar-benar Anda gunakan: net view \\%server% untuk pemeriksaan cepat, atau uji TCP singkat ke port 445 di PowerShell. Keduanya bergantung pada hal yang penting.
Tambahkan jumlah percobaan yang terbatas. Perulangan tunggu tanpa batas atas mengubah tunnel yang rusak menjadi sesi yang tidak pernah selesai logon, dan itu panggilan dukungan yang lebih buruk daripada huruf drive yang hilang.
Buat agar dapat dijalankan ulang dan sadar sesi
Jalankan di dalam sesi pengguna itu sendiri. Tugas yang berjalan sebagai SYSTEM menempatkan drive di sesi yang sama sekali berbeda, dan pengguna yang sudah logon tidak pernah melihat hasilnya. Itu memberi Anda skrip yang melaporkan keberhasilan dan desktop tanpa drive.
Periksa sebelum memetakan, dan hapus hanya entri yang usang. net use Z: /delete mengembalikan galat ketika huruf itu tidak dipakai, dan galat itu aman diabaikan alih-alih menjadi alasan untuk meninggalkan sisa skrip. Pertahankan /persistent:no agar percobaan yang gagal tidak berubah menjadi percobaan penyambungan ulang permanen nanti.
Dan jangan menaruh kata sandi di dalam file. rasdial dapat memakai ulang kredensial yang tersimpan untuk entri VPN, dan share seharusnya mengautentikasi sebagai pengguna yang sudah logon. Jika share benar-benar membutuhkan kredensial berbeda, daftarkan sekali per pengguna dengan cmdkey alih-alih menanamkannya dalam file batch yang tinggal di share logon. Siapa pun yang dapat membaca share itu dapat membaca kata sandinya, dan itu mengubah kemudahan menjadi insiden.
Menjalankan ulang seluruh skrip seharusnya tidak berbahaya, karena itulah yang akan terjadi. Pengguna menyambung ulang, laptop bangun, dan jalur kode yang sama berjalan lagi dengan keadaan awal yang berbeda.
Catat cukup untuk membuktikan separuh mana yang terlambat
Tulis stempel waktu, hasil pemeriksaan kesiapan, dan kode keluar pemetaan ke file di bawah profil pengguna. Ketika laporan berikutnya tentang drive yang hilang datang, log itu menjawab satu-satunya pertanyaan yang penting: apakah tunnel datang terlambat, atau share menolak?
Tanpa itu, setiap kemunculan ulang diselidiki dari nol, dan kesimpulan biasanya adalah perubahan izin yang tidak memperbaiki apa pun.
Uji urutan itu sekali dari boot dingin dan sekali dari tidur. Kasus bangun adalah tempat urutan paling sering rusak, karena sesi dilanjutkan sebelum jaringan dan skrip melihat mesin yang sudah logon berjam-jam.