VPN ची विंडो उघडून मग दहा सेकंद झोपणारी स्क्रिप्ट अंदाज लावत असते, आणि तो अंदाज दोन्ही बाजूंनी चुकतो: एकतर टनेल वापरण्यायोग्य होण्याआधी ती प्रत सुरू करते, किंवा काम सुरू होऊ शकले असते त्यानंतर ती थांबते। यापैकी कोणताही परिणाम प्रमाणीकरण पूर्ण झाले का हे सांगत नाही। कमांडचाच परिणाम वापरा, आणि मग सेवेला असा प्रश्न विचारा ज्याचे ती खरोखर उत्तर देऊ शकते। या दोन पायऱ्यांचा क्रम हीच संपूर्ण रचना आहे।

कमांड प्रत्यक्षात काय नोंदवते

इंस्टॉल केलेले कमांड-लाइन साधन ज्या नेटिव्ह Windows प्रोफाइलला समजते, त्यासाठी rasdial.exe नाव दिलेल्या नोंदीला डायल करते आणि प्रोसेसचा एक्झिट कोड परत करते। तो कोड डायलचा प्रयत्न वर्णन करतो: शून्य म्हणजे त्या प्रोफाइलसाठी कनेक्शन तयार झाले, आणि शून्य नसलेला म्हणजे कोड ज्या टप्प्याचा उल्लेख करतो तिथे ते अपयशी झाले। तो एका थराचा निकाल म्हणून वाचा, संपूर्ण कामाचा नाही।

हा निकाल पत्ता नेमणूक, खाजगी DNS, जोडलेले मार्ग किंवा विशिष्ट सर्व्हरपर्यंत पोहोचण्याच्या परवानगीबद्दल काहीही सांगत नाही। हे सर्व यशस्वी डायलनंतर घडते, आणि त्यापैकी कोणतेही अजूनही चुकीचे असू शकते। याच अंतरामुळे जोडलेले चिन्ह आणि अपयशी प्रत एकत्र दिसतात।

इतर काहीही चालण्याआधी निकाल टिपून घ्या

प्रोफाइल काम चालवणाऱ्या खात्यासाठी अस्तित्वात आहे याची पुष्टी करून सुरुवात करा, फक्त तुम्ही चाचणी करत असलेल्या खात्यासाठी नाही:

Get-VpnConnection -Name "Contoso-Office"
Get-VpnConnection -Name "Contoso-Office" -AllUserConnection

मग डायल करा आणि कोड लगेच वाचा। PowerShell नेटिव्ह निकाल $LASTEXITCODE मध्ये पुढील बाह्य कमांड चालण्यापर्यंतच ठेवते, त्यामुळे डायल आणि तपासणीमध्ये अनपेक्षित ping चालल्यास तुम्हाला वाचायचे होते ते मूल्य नष्ट होते। आधी तो तुमच्या स्वतःच्या चलात नेमा, मग काय करायचे ते ठरवा।

& rasdial.exe "Contoso-Office"
$dial = $LASTEXITCODE
if ($dial -ne 0) { throw "rasdial failed with $dial" }

कोडसोबत गुप्त नसलेला त्रुटी मजकूर नोंदवा, कारण न सापडलेली नोंद, नाकारलेली ओळखपत्रे आणि कालबाह्यता यांना वेगळा प्रतिसाद लागतो। तक्ता सामान्य निकालांना पुढील कृतीशी जोडतो।

ResultWhat it indicatesNext step
0The dial completedProbe the resource, do not start writing yet
691The credential or authentication method was rejectedFix the account or method, do not retry in a loop
623The named entry was not foundFix the profile name or its scope
Other non-zeroTransport, timeout or adapter failureRead the message, then check the path

तयारी म्हणजे संसाधन, टनेल नाही

डायल यशस्वी झाल्यावर कामाला जे लागते ते तपासा। सामायिक फोल्डर, API एंडपॉइंट किंवा डेटाबेस पोर्ट हा सार्वजनिक वेबसाइटपेक्षा चांगला तयारी-तपास आहे, कारण सार्वजनिक साइट कोणत्याही कार्यरत मार्गाने उत्तर देते आणि खाजगी मार्गाबद्दल काहीही सिद्ध करत नाही। अनुप्रयोग स्वतः ज्यावर अवलंबून आहे तोच तपास निवडा। यशस्वी TCP कनेक्शन सांगते की राउटिंग आणि गाळणी उघडी आहे, आणि पहिल्या लेखनाला बहुतेक तेवढेच लागते:

Test-NetConnection -ComputerName files.contoso.example -Port 445

प्रयत्न मर्यादित करा आणि कोणता टप्पा अपयशी झाला ते नोंदवा। नाकारलेल्या ओळखपत्रांनी स्क्रिप्ट थांबवायला हवी, पुनर्प्रयत्नाचे चक्र भरायला नको; अजून न आलेले DNS नाव काही लहान पुनर्प्रयत्नांस पात्र आहे; कधीच न उघडणारा पोर्ट हा क्लायंटच्या वरचा राउटिंग किंवा धोरणाचा प्रश्न आहे।

काम सुरू होण्याआधीच कनेक्शन असल्यास त्याला हात लावू नका। तुम्ही न उघडलेले सत्र बंद केल्यास वापरकर्त्याचे इतर काम व्यत्ययित होते, म्हणून सत्र कोणाचे आहे आणि कोणते बंद करणे योग्य आहे ते नोंदवा।

प्रोफाइल काम चालवणाऱ्या खात्यापुरते मर्यादित ठेवा

नियोजित कार्य स्वतःच्या ओळखीखाली आणि सत्राखाली चालते, आणि तुमच्या डेस्कटॉपवर चालणारे प्रोफाइल तिथे अदृश्य असू शकते। वेळापत्रकावर विश्वास ठेवण्याआधी दृश्यता-तपासणी आणि डायल कार्याच्या खात्याखाली पुन्हा चालवा। संकेतशब्द कमांड लाइनपासून दूर ठेवा: अर्जदार इतर प्रोसेसना दिसतात आणि बऱ्याचदा नोंदींमध्ये जातात।

तैनातीसाठी ब्राउझरमधील पुष्टी, स्मार्ट-कार्ड स्पर्श किंवा MFA मंजुरी लागत असल्यास तो परस्परसंवाद रचनेचा भाग आहे आणि कीस्ट्रोकचे अनुकरण करून तो स्वयंचलित करता येत नाही। त्या प्रकरणासाठी समर्थित क्लायंट वापरा आणि मानवी पाऊल घडू द्या।

अंतिम स्क्रिप्टचा आकार छोटा राहतो: प्रोफाइल तपासा, डायल करा, कोड वाचा, संसाधन तपासा, मग काम सुरू करा। प्रत्येक पायरी आधीच्या पायरीला उत्तर देता आले नाही अशा प्रश्नाचे उत्तर देते, आणि त्यापैकी कोणतीही झोपेवर अवलंबून नाही।

संबंधित लेख