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 येते, बहुतेक वेळा मशीन प्रमाणपत्रासह; आत उपयोगकर्ता किंवा प्रमाणपत्र प्रमाणीकरण असलेले TLS असणारे SSTP; आणि पूर्व-सामायिक की सह 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 हवे, मार्ग नाही, म्हणून आधी फाइल वाचा आणि रूपांतरित करा। स्ट्रिंग दिल्यास स्कीमा समस्येसारखी वाटणारी रूपांतरण त्रुटी येते आणि लोकांना कधीही चुकीचे नसलेले 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"स्थिती अजूनही Connected सांगत असताना वापरकर्ते ज्या दोन अडचणी नोंदवतात त्या DNS आणि मार्गनिर्देशन आहेत। अंतर्गत नाव सोडवा आणि कोणत्या सर्व्हरने उत्तर दिले ते तपासा; -DnsSuffix नसलेले प्रोफाइल उत्तम टनेल करू शकते आणि तरीही प्रत्येक इंट्रानेट शोध अयशस्वी होऊ शकतो। नंतर डीफॉल्ट मार्ग पहा: स्प्लिट टनेलिंग बंद असल्यास सर्वात कमी मेट्रिकचा 0.0.0.0/0 मार्ग VPN इंटरफेसकडे निर्देश करावा, आणि सुरू असल्यास फक्त अपेक्षित प्रीफिक्स। दोन्ही बरोबर वाटत असूनही रहदारी मरत असेल, तर समस्या प्रोफाइलच्या पलीकडे, धोरणात किंवा गेटवे फिल्टरमध्ये आहे।
जेव्हा कनेक्शन पूर्णपणे अयशस्वी होते, तेव्हा कोड परत जाण्याचा टप्पा मर्यादित करतो:
- 691: गेटवेने ओळखपत्रे नाकारली। टनेलकडे नाही, टप्पा 3 कडे परत जा।
- 809: IKEv2 हस्तांदोलन कधीही पूर्ण झाले नाही। UDP 500 आणि 4500, आणि प्रमाणपत्राचा विश्वास तपासा।
- 789: L2TP/IPsec पूर्व-सामायिक की गहाळ आहे किंवा चुकीची आहे।
- 868: सर्व्हर नाव सोडवले गेले नाही। प्रोफाइल संपादित करण्यापूर्वी DNS दुरुस्त करा।
चालणारी कमांड ती एन्कोड करणाऱ्या सेटिंग्जजवळ ठेवा, जेणेकरून पुढचा माणूस UI मधून प्रोफाइल उलटून न काढता पुन्हा तयार करू शकेल। खरोखर पुन्हा तयार करावे लागल्यास, नोंद हटवा आणि त्याच पॅरामीटर्सनी पुन्हा तयार करा; अर्धवट संरचित प्रोफाइलला पॅच केल्यास जुने मार्ग आणि प्रमाणीकरण स्थिती मागे राहते। आणि फाइल कधीही मूळ नसेल, तर तिच्या मालक क्लायंटकडे परत जा। IKEv2 प्रोफाइलचा वेश परिधान केलेले .ovpn आयात नाही, सपोर्ट तिकीट आहे।