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 स्वीकृति चाहिन्छ भने त्यो अन्तरक्रिया डिजाइनको भाग हो र किबोर्ड थिचाइ नक्कल गरेर स्वचालित गर्न सकिँदैन। त्यस्तो अवस्थामा समर्थित क्लाइन्ट प्रयोग गर्नुहोस् र मानवीय चरण हुन दिनुहोस्।

अन्तिम स्क्रिप्टको आकार छोटो रहन्छ: प्रोफाइल जाँच्नुहोस्, डायल गर्नुहोस्, कोड पढ्नुहोस्, स्रोत जाँच्नुहोस्, अनि काम सुरु गर्नुहोस्। प्रत्येक चरणले अघिल्लोले जवाफ दिन नसकेको प्रश्नको जवाफ दिन्छ, र तीमध्ये कुनै पनि सुताइमा निर्भर छैन।

सम्बन्धित लेखहरू