ड्राइव अक्षर लॉगऑन पर दिखाई देता है और फिर खाली फ़ोल्डर के रूप में खुलता है, या लाल क्रॉस और अनुपलब्ध नेटवर्क संसाधन के बारे में संदेश के साथ। अनुमतियाँ आमतौर पर ठीक होती हैं। जो हुआ वह यह था कि मैपिंग कमांड उस खिड़की के दौरान चली जब VPN क्लाइंट मौजूद था लेकिन फ़ाइल सर्वर तक कोई रूट नहीं था, और Windows ने उस विफलता को ड्राइव की स्थिति के रूप में दर्ज कर लिया। समाधान यह है कि मैपिंग को लॉगऑन पर होने वाली चीज़ मानना बंद करें और इसे कनेक्शन क्रम का अंतिम चरण मानें।

मैपिंग बहुत जल्दी क्यों चलती है

लॉगइन स्क्रिप्ट तब शुरू होती है जब सत्र शुरू होता है। लॉगऑन के दौरान जुड़ने वाला VPN क्लाइंट अपनी समय-रेखा ऊपर जोड़ता है: प्रक्रिया चल रही हो सकती है, वर्चुअल एडाप्टर मौजूद हो सकता है, और कार्यालय सबनेट तक का रूट अभी भी गायब हो सकता है। ये तीनों स्थितियाँ स्क्रिप्ट की नज़र से एक जैसी दिखती हैं और इनमें से केवल एक काम करती है।

कुछ वातावरण हर लॉगऑन पर वही विफल पंक्ति दोहराकर जवाब देते हैं, जिससे ऐसा उपयोगकर्ता बनता है जिसने ड्राइव पर दो बार क्लिक करना सीख लिया है, और ऐसी स्क्रिप्ट जो कभी अपने आप सफल नहीं हुई।

ड्राइव स्वयं इसे और बिगाड़ती है। मैप की गई ड्राइव एक सत्र वस्तु है, और एक बार Windows द्वारा अनुपलब्ध चिह्नित होने के बाद, टनल स्वस्थ होने के बहुत बाद तक आइकन टूटा रह सकता है। इसीलिए हाथ से दोबारा मैप करना काम करता है जबकि स्क्रिप्ट कुछ नहीं करती दिखती है। सत्र विफलता याद रखता है, उसके पीछे का इरादा नहीं।

कनेक्टेड स्थिति कोई मार्ग नहीं है

ट्रे में VPN आइकन बताता है कि टनल चालू है या नहीं। यह इस बारे में कुछ नहीं कहता कि किसी विशेष सर्वर तक रूट मौजूद है या नहीं, DNS उस नाम को टनल के पते में हल करता है या नहीं, या सर्वर का अपना फ़ायरवॉल आपको स्वीकार करता है या नहीं।

ये एक ही दृश्य परिणाम वाली तीन अलग विफलताएँ हैं, और ट्रे आइकन पर निर्भर करना उन्हें एक ही अविश्वसनीय संकेत में पिघला देता है।

एक तैयारी जाँच जो उस सर्वर का नाम लेती है जिसकी आपको वास्तव में ज़रूरत है उनमें अंतर करती है, क्योंकि वह तब तक विफल रहती है जब तक विशिष्ट मार्ग काम न करे, न कि तब तक जब तक कोई इंटरफ़ेस स्वयं को कनेक्टेड घोषित कर दे।

सर्वर पर निर्भर करें, क्लाइंट पर नहीं

एक ऐसा होस्ट चुनें जो केवल टनल से पहुँचा जा सके और कुछ भी मैप करने से पहले उसका इंतज़ार करें। नीचे का अंश सहेजी गई Windows VPN प्रविष्टि से जुड़ता है, फ़ाइल सर्वर की जाँच करता है और फिर ड्राइव मैप करता है।

@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 तैयारी की जाँच है, अनुमति की परीक्षा नहीं। यदि आपके नेटवर्क पर ICMP फ़िल्टर है, तो इसके बजाय वह सेवा जाँचें जिसका आप वास्तव में उपयोग करते हैं: त्वरित जाँच के लिए net view \\%server%, या PowerShell में पोर्ट 445 पर एक छोटी TCP परीक्षा। दोनों में से कोई भी उस चीज़ पर निर्भर करता है जो मायने रखती है।

सीमित संख्या में प्रयास जोड़ें। सीमा के बिना प्रतीक्षा लूप टूटी टनल को ऐसे सत्र में बदल देता है जो कभी लॉगइन पूरा नहीं करता, और यह गुम ड्राइव अक्षर से बुरी सहायता कॉल है।

इसे दोबारा चलाने योग्य और सत्र-सजग बनाएँ

इसे उपयोगकर्ता के अपने सत्र में चलाएँ। SYSTEM के रूप में चलने वाला कार्य ड्राइव को पूरी तरह दूसरे सत्र में रखता है, और लॉगइन किया हुआ उपयोगकर्ता परिणाम कभी नहीं देखता। इससे आपको सफलता की रिपोर्ट करने वाली स्क्रिप्ट और बिना ड्राइव वाला डेस्कटॉप मिलता है।

मैप करने से पहले जाँचें, और केवल पुरानी प्रविष्टि हटाएँ। जब अक्षर उपयोग में न हो तो net use Z: /delete त्रुटि लौटाता है, और उस त्रुटि को अनदेखा करना सुरक्षित है, स्क्रिप्ट का बाकी हिस्सा छोड़ने का कारण नहीं। /persistent:no रखें ताकि विफल प्रयास बाद में स्थायी पुनः-कनेक्शन प्रयास में न बदले।

और फ़ाइल में पासवर्ड न रखें। rasdial VPN प्रविष्टि के लिए सहेजे गए क्रेडेंशियल का पुनः उपयोग कर सकता है, और शेयर को लॉगइन किए गए उपयोगकर्ता के रूप में प्रमाणित होना चाहिए। यदि शेयर को वास्तव में अलग क्रेडेंशियल चाहिए, तो उन्हें लॉगऑन शेयर पर रहने वाली बैच फ़ाइल में एम्बेड करने के बजाय cmdkey से प्रति उपयोगकर्ता एक बार पंजीकृत करें। जो भी उस शेयर को पढ़ सकता है वह पासवर्ड भी पढ़ सकता है, और यह सुविधा को घटना में बदल देता है।

पूरी स्क्रिप्ट दोबारा चलाना हानिरहित होना चाहिए, क्योंकि ठीक यही होने वाला है। उपयोगकर्ता दोबारा जुड़ते हैं, लैपटॉप जागते हैं, और वही कोड पथ अलग प्रारंभिक स्थिति के साथ फिर चलता है।

यह साबित करने के लिए पर्याप्त लॉग करें कि कौन-सा आधा देर से आया

समय-चिह्न, तैयारी जाँच का परिणाम और मैपिंग का एक्ज़िट कोड उपयोगकर्ता प्रोफ़ाइल के अंतर्गत एक फ़ाइल में लिखें। जब गुम ड्राइव की अगली रिपोर्ट आए, तो वह लॉग एकमात्र महत्वपूर्ण प्रश्न का उत्तर देता है: टनल देर से आई, या शेयर ने मना कर दिया?

इसके बिना, हर पुनरावृत्ति को शून्य से जाँचा जाता है, और सामान्य निष्कर्ष अनुमति में बदलाव होता है जो कुछ भी ठीक नहीं करता।

क्रम को एक बार कोल्ड बूट से और एक बार स्लीप से जाँचें। जागने का मामला वह है जहाँ क्रम सबसे अधिक टूटता है, क्योंकि नेटवर्क से पहले सत्र फिर शुरू होता है और स्क्रिप्ट ऐसी मशीन देखती है जो घंटों पहले लॉगइन हो चुकी है।

संबंधित लेख