PowerShell मा Add-VpnConnection प्रयोग गरी VPN प्रोफाइल आयात गर्ने
Add-VpnConnection ले नेटिभ Windows प्रोफाइल मात्र बनाउँछ। सुरुङ र प्रमाणीकरणको जोडी गेटवेसँग मिलाउनुहोस्, दायरा सोचविचार गरी तय गर्नुहोस्, त्यसपछि रुट र DNS परीक्षण गर्नुहोस्।
Import-VpnProfile भन्ने कुनै cmdlet छैन, र सबैभन्दा नजिक देखिने Add-VpnConnection ले कहिल्यै .ovpn वा .conf फाइल पढ्दैन। यसले तपाईंले दिनुभएका प्यारामिटरबाट नेटिभ Windows प्रोफाइल बनाउँछ, त्यसैले यहाँको पहिलो जाँचबिन्दु कमाण्ड लाइन नभई फाइल ढाँचा हो। यदि गेटवेले SSTP, IKEv2, L2TP/IPsec वा PPTP बोल्छ भने Windows ले प्रोफाइलको जिम्मा लिन सक्छ र सूचीको बाँकी भाग लागू हुन्छ। यदि तपाईंलाई OpenVPN वा WireGuard फाइल दिइयो भने पहिलो चरणमै रोकिनुहोस्: ती क्लाइन्टका आफ्नै आयातकर्ता हुन्छन्।
चरण 1: Windows ले साँच्चै कुन प्रोफाइल सम्हाल्न सक्छ भनी पुष्टि गर्नुहोस्
अरु केही गर्नुअघि मेसिनमा Get-Command -Module VpnClient चलाउनुहोस्। Windows 10, Windows 11 र Server 2016 वा नयाँ संस्करणसँग यो मोड्युल आउँछ; यो छैन भने कुनै पनि प्रतिलिपि गरिएको स्क्रिप्टले यो होस्टलाई नेटिभ प्रोफाइल स्वीकार गराउन सक्दैन। महत्त्वपूर्ण cmdlet हरू Add-VpnConnection, Get-VpnConnection र Remove-VpnConnection हुन्, र Add-VpnConnection सन्दर्भ मा भएको प्यारामिटर सूची एक पटक पूरै पढ्न लायक छ।
नेटिभ भन्नाले Windows को VPN स्ट्याकले सुरुङ अन्त्य गर्छ। यसमा IKEv2, प्रायः मेसिन प्रमाणपत्रसँग; SSTP, जुन भित्र प्रयोगकर्ता वा प्रमाणपत्र प्रमाणीकरण भएको TLS हो; र पूर्व-साझा कुञ्जीसहितको L2TP/IPsec पर्छन्। .ovpn फाइल OpenVPN स्क्रिप्ट हो, Windows जडान होइन: यसले remote, cipher वा tls-auth जस्ता निर्देशन बोक्छ, जसको Windows स्ट्याकलाई कुनै धारणा छैन। WireGuard .conf पनि PrivateKey र AllowedIPs सहितको त्यही कथा हो; एउटालाई अर्कोमा बदल्नु प्यारामिटरको छनोट नभई फरक सुरुङ कार्यान्वयन हो।
तेस्रो शाखा पनि छ। प्रशासकले तपाईंलाई VPNv2 CSP XML कागजात वा Intune प्रोफाइल दिनुभयो भने त्यो MDM बाटो हो, जुन Add-VpnConnection ले नभई प्रोभिजनिङ स्ट्याकले लागू गर्छ। ती नोड नामलाई PowerShell प्यारामिटरमा नबदल्नुहोस्; बरु XML कुन मेकानिजमले लागू गर्छ भनी सोध्नुहोस्।
चरण 2: सुरुङ प्रकारलाई प्रमाणीकरण विधिसँग जोड्नुहोस्
-TunnelType र -AuthenticationMethod छुट्टै प्यारामिटर हुन्, र गेटवेलाई संयोजनमात्र मतलब हुन्छ। एउटा ठीक र अर्को बेठीक हुँदा कतै नजोडिने वा सुरुङ उभिएरै अलपत्र पर्ने प्रोफाइल बन्छ। अर्को सेवाका लागि छानिएको पूर्वनिर्धारित मानमा भर नपरी दुवै स्पष्ट रूपमा सेट गर्नुहोस्।
- MachineCertificate सहित IKEv2: क्लाइन्टले कम्प्युटर प्रमाणपत्र देखाउँछ; -EncryptionLevel Required पनि सेट गर्नुहोस्।
- Eap सहित SSTP: पहिले TLS सुरुङ, त्यसपछि PEAP/MSCHAPv2 वा EAP भित्रको प्रमाणपत्र। यसका लागि चरण 3 को XML चाहिन्छ।
- MSChapv2, Chap वा Pap सहित SSTP, L2TP वा PPTP: साधारण प्रयोगकर्ता नाम र पासवर्ड, EAP ब्लब चाहिँदैन।
- MSChapv2 र -Lt2pPsk सहित L2TP: PSK ले IPsec भाग सम्हाल्छ, प्रयोगकर्ताले PPP; दुवै सर्भरसँग मिल्नुपर्छ।
splat ले मानहरू एउटै ठाउँमा राख्छ:
$p = @{
Name = "Corp IKEv2"
ServerAddress = "vpn.example.com"
TunnelType = "Ikev2"
AuthenticationMethod = "MachineCertificate"
EncryptionLevel = "Required"
SplitTunneling = $false
DnsSuffix = "corp.example.com"
}
Add-VpnConnection @p -PassThru-PassThru ले Windows ले भर्खरै लेखेको वस्तु फर्काउँछ, त्यसैले दोस्रो कल बिनै हेर्न सकिन्छ। नाम पहिले नै छ भने cmdlet चल्न इन्कार गर्छ; -Force ले त्यसलाई अधिलेखन गर्छ, जुन उत्पादन ल्यापटपमा गलत प्रतिक्रिया हो, किनकि यसले कसैले हातैले मिलाएको कुरा चुपचाप फालिदिन्छ।
चरण 3: प्रमाण-सामग्री ठीकसँग हस्तान्तरण गर्नुहोस्
पासवर्ड, पूर्व-साझा कुञ्जी र EAP ब्लब यी स्क्रिप्ट प्रायः यहीँ बिग्रन्छन्। -EapConfigXmlStream ले पथ नभई XmlDocument चाहन्छ, त्यसैले फाइल पहिले पढेर cast गर्नुहोस्। स्ट्रिङ पठाउँदा रूपान्तरण त्रुटि आउँछ, जुन स्किमाको समस्या जस्तो सुनिन्छ र मानिसलाई कहिल्यै नबिग्रिएको XML पुनर्लेखन गराउँछ।
$eap = [xml](Get-Content -Raw .\peap-mschapv2.xml)
Add-VpnConnection -Name "Corp SSTP" -ServerAddress "sstp.example.com" `
-TunnelType Sstp -AuthenticationMethod Eap `
-EapConfigXmlStream $eap -EncryptionLevel Requiredत्यो XML ब्लगको टुक्राबाट बनाइने कुरा होइन। यसले EAP विधि प्रकार र भित्री प्रमाणीकरणको नाम दिन्छ, र गेटवेले दुवैलाई आफ्नो नीतिसँग तुलना गर्छ। नमिल्ने भित्री विधि TLS ह्यान्डसेक सकिएपछि असफल हुन्छ, जुन ठ्याक्कै खराब पासवर्ड जस्तो देखिन्छ तर होइन। XML गेटवे चलाउने व्यक्तिबाट लिनुहोस्, वा पहिले नै चलिरहेको प्रोफाइलबाट निर्यात गर्नुहोस्।
IKEv2 मा प्रमाणपत्रको भाग स्टोर खोजी हो। -MachineCertificateIssuerFilter ले प्रमाणपत्र वस्तु लिन्छ, र Windows ले यसलाई LocalMachine\My मा प्रयोगयोग्य क्लाइन्ट प्रमाणपत्र भेट्टाउन प्रयोग गर्छ। प्रमाणपत्रलाई निजी कुञ्जी र सर्भरले विश्वास गर्ने चेन चाहिन्छ; एउटा पनि छैन भने प्रमाणीकरण कुनै उपयोगी विवरण बिनै असफल हुन्छ, त्यसैले पहिले स्टोर जाँच्नुहोस्:
Get-ChildItem Cert:\LocalMachine\My |
Where-Object { $_.HasPrivateKey -and $_.NotAfter -gt (Get-Date) } |
Select-Object Subject, Issuer, Thumbprint, NotAfterगोप्य कुरा स्क्रिप्ट फाइलबाहिर राख्नुहोस्। कमाण्ड लाइनमा पठाइएको वा .ps1 मा हालेको PSK ट्रान्स्क्रिप्ट, सुरक्षित सत्र र साझा रिपोजिटरीमा पुग्छ, र -RememberCredential ले प्रयोगकर्ता प्रमाणहरू पछिका लागि क्यास गर्छ, जसले एक-पटकको परीक्षणलाई स्थायी अनुमतिमा बदल्छ।
चरण 4: पहिलो रन अघि दायरा तय गर्नुहोस्
एउटै cmdlet ले दुई फरक फोनबुकमा लेख्छ। -AllUserConnection बिना प्रोफाइल तपाईंको हुन्छ र %APPDATA\Microsoft\Network\Connections\Pbk\rasphone.pbk मुनि बस्छ। यो सहित, उच्च प्राथमिकताको प्रम्प्टबाट, प्रोफाइल %ProgramData\Microsoft\Network\Connections\Pbk\rasphone.pbk मा जान्छ र साइन-इन स्क्रिन लगायत हरेक खातालाई देखिन्छ।
दायरा सजावट होइन। सबै प्रयोगकर्ताको प्रोफाइल सेवा खाता, अनुसूचित कार्य वा साइन-इन-पूर्व परिदृश्यले प्रयोग गर्न सक्ने कुरा हो; प्रति-प्रयोगकर्ता प्रोफाइल ती तीनैलाई अदृश्य हुन्छ। वस्तुहरू पनि फरक तरिकाले पढिन्छन्: Get-VpnConnection ले हालको प्रयोगकर्ताका प्रविष्टि सूचीबद्ध गर्छ, Get-VpnConnection -AllUserConnection ले मेसिनभरका। अहिले एउटा छान्नुहोस्, र पछिको परिवर्तनलाई सम्पादन नभई मेटेर पुनः सिर्जना गर्ने काम ठान्नुहोस्:
# elevated prompt
Remove-VpnConnection -Name "Corp IKEv2" -Force
Add-VpnConnection -Name "Corp IKEv2" -ServerAddress "vpn.example.com" `
-TunnelType Ikev2 -AuthenticationMethod MachineCertificate `
-EncryptionLevel Required -AllUserConnectionचरण 5: सुरुङले साँच्चै के दिनुपर्छ भनी परीक्षण गर्नुहोस्
जोडिएको आइकनले सुरुङ उभियो भन्ने मात्र प्रमाण दिन्छ, अरु केही होइन। पहिले कमाण्ड लाइनबाट जोडिनुहोस्, ताकि असफलता संवाद नभई पाठका रूपमा आउन्, त्यसपछि Windows ले के रेकर्ड गर्यो पढ्नुहोस्:
rasdial "Corp IKEv2"
Get-VpnConnection -Name "Corp IKEv2" |
Select-Object Name, ServerAddress, TunnelType, ConnectionStatus, SplitTunneling
Get-NetRoute -DestinationPrefix "0.0.0.0/0"स्थिति अझै जोडिएको देखाउँदा प्रयोगकर्ताले रिपोर्ट गर्ने दुई असफलता DNS र रुटिङ हुन्। आन्तरिक नाम रिजोल्व गरी कुन सर्भरले जवाफ दियो हेर्नुहोस्; -DnsSuffix बिनाको प्रोफाइलले राम्ररी सुरुङ गर्न सक्छ तर इन्ट्रानेटको हरेक खोजी असफल हुन्छ। त्यसपछि पूर्वनिर्धारित रुट हेर्नुहोस्: स्प्लिट टनेलिङ बन्द हुँदा सबैभन्दा कम मेट्रिक भएको 0.0.0.0/0 रुट VPN इन्टरफेसमा जानुपर्छ, र खुला हुँदा तपाईंले अपेक्षा गरेका प्रिफिक्समात्र। दुवै ठीक देखिए पनि ट्राफिक मर्छ भने समस्या प्रोफाइलभन्दा पर, नीति वा गेटवे फिल्टरमा छ।
जडान पूरै असफल हुँदा कोडले फर्केर हेर्नुपर्ने चरण साँघुरो बनाउँछ:
- 691: गेटवेले प्रमाण अस्वीकार गर्यो। चरण 3 मा फर्कनुहोस्, सुरुङमा होइन।
- 809: IKEv2 ह्यान्डसेक कहिल्यै सकिएन। UDP 500 र 4500, र प्रमाणपत्रको विश्वास जाँच्नुहोस्।
- 789: L2TP/IPsec को पूर्व-साझा कुञ्जी छैन वा गलत छ।
- 868: सर्भर नाम रिजोल भएन। प्रोफाइल सम्पादन गर्नुअघि DNS ठीक गर्नुहोस्।
चल्ने कमाण्डलाई त्यसले सङ्केत गर्ने सेटिङसँगै राख्नुहोस्, ताकि अर्को व्यक्तिले UI बाट प्रोफाइल रिभर्स-इन्जिनियर गर्नुभन्दा पुनः निर्माण गर्न सकोस्। पुनः निर्माण गर्नैपर्ने भए प्रविष्टि मेटेर उही प्यारामिटरबाट फेरि बनाउनुहोस्; आधा कन्फिगर भएको प्रोफाइलमा प्याच गर्दा पुराना रुट र प्रमाणीकरण अवस्था बाँकी रहन्छन्। र फाइल कहिल्यै नेटिभ थिएन भने त्यसको मालिक क्लाइन्टमा फर्कनुहोस्। IKEv2 प्रोफाइलको भेषमा राखिएको .ovpn आयात होइन, सहयोग टिकट हो।