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 හෝ ඊට පසුව මෙම මොඩියුලය සපයයි; එය නොමැති නම්, පිටපත් කළ කිසිදු ස්ක්රිප්ටයක් මෙම සත්කාරකයට දේශීය පැතිකඩක් පිළිගැනීමට සලස්වන්නේ නැත. වැදගත් වන්නේ Add-VpnConnection, Get-VpnConnection සහ Remove-VpnConnection යන cmdlet ය, සහ Add-VpnConnection යොමුව සම්පූර්ණයෙන් එක් වරක් කියවීම වටී.
දේශීය යනු Windows VPN තට්ටුව උමංගය අවසන් කරන බවයි. එයට IKEv2, බොහෝ විට පරිගණක සහතිකයක් සමඟ; SSTP, එනම් ඇතුළත පරිශීලක හෝ සහතික සත්යාපනය සහිත TLS; සහ පූර්ව-හවුල් යතුරක් සහිත L2TP/IPsec ඇතුළත් වේ. .ovpn ගොනුවක් යනු OpenVPN ස්ක්රිප්ටයක් මිස Windows සම්බන්ධතාවක් නොවේ: එය Windows තට්ටුවට අදහසක් නොමැති remote, cipher හෝ tls-auth වැනි නියෝග දරයි. 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 එකක් මිස මාර්ගයක් නොවේ, එබැවින් පළමුව ගොනුව කියවා පරිවර්තනය කරන්න. තන්තුවක් ලබා දීමෙන් schema ගැටලුවක් ලෙස කියවෙන පරිවර්තන දෝෂයක් ඇති වන අතර එය කිසිදා වැරදි නොවූ 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 නිවැරදි කරන්න.
වැඩ කරන විධානය එය කේතනය කරන සැකසුම් අසල තබන්න, එවිට ඊළඟ පුද්ගලයාට පැතිකඩ අතුරුමුහුණතින් ප්රතිනිර්මාණය කරනවාට වඩා නැවත ගොඩනඟා ගත හැක. ඔබට ඇත්තෙන්ම නැවත ගොඩනඟන්නට සිදු වුවහොත්, ඇතුළත් කිරීම මකා එම පරාමිතීන්ගෙන්ම නැවත සාදන්න; අර්ධ වශයෙන් වින්යාස කළ පැතිකඩක් පැච් කිරීම පසුපස යල්පැන ගිය මාර්ග සහ සත්යාපන තත්ත්වය ඉතිරි කරයි. ගොනුව කිසිදා දේශීය නොවූයේ නම්, එය හිමි සේවාලාභියා වෙත ආපසු යන්න. IKEv2 පැතිකඩක් ලෙස සැරසුණු .ovpn එකක් ආයාතයක් නොව, ආධාරක ටිකට්පතකි.