Hakuna cmdlet ya Import-VpnProfile, na ile inayofanana zaidi, Add-VpnConnection, haisoma kamwe faili ya .ovpn au faili ya .conf; cha kuingia ni vigezo unavyopitisha pekee. Hukusanya wasifu asili wa Windows kutoka kwa vigezo hivyo, ndiyo sababu kituo cha kwanza hapa ni muundo wa faili na si mstari wa amri. Ikiwa lango linazungumza SSTP, IKEv2, L2TP/IPsec au PPTP, Windows inaweza kumiliki wasifu na sehemu iliyobaki ya orodha inatumika. Ikiwa umepewa faili ya OpenVPN au WireGuard, simama hatua ya kwanza: wateja hao wanamiliki viingizaji vyao.

Hatua ya 1: Thibitisha wasifu ambao Windows inaweza kumiliki kweli

Endesha Get-Command -Module VpnClient kwenye mashine kabla ya kitu kingine chochote. Windows 10, Windows 11 na Server 2016 au baadaye huja na moduli; ikiwa haipo, hakuna script iliyonakiliwa itakayofanya mwenyeji huyu akubali wasifu asili. Cmdlet muhimu ni Add-VpnConnection, Get-VpnConnection na Remove-VpnConnection, na orodha ya vigezo katika marejeleo ya Add-VpnConnection inafaa kusomwa mara moja kwa ukamilifu.

Asili inamaanisha msururu wa VPN wa Windows unamaliza handaki. Hiyo inajumuisha IKEv2, mara nyingi na cheti cha mashine; SSTP, ambayo ni TLS yenye uthibitishaji wa mtumiaji au cheti ndani; na L2TP/IPsec na ufunguo ulioshirikiwa mapema. Faili ya .ovpn ni script ya OpenVPN, si muunganisho wa Windows: hubeba maagizo kama remote, cipher au tls-auth ambayo msururu wa Windows haujui. .conf ya WireGuard ni hadithi hiyo hiyo na PrivateKey na AllowedIPs; kuibadilisha moja kuwa nyingine si uchaguzi wa kigezo bali utekelezaji tofauti wa handaki.

Kuna tawi la tatu. Ikiwa msimamizi anakupa hati ya XML ya VPNv2 CSP au wasifu wa Intune, hiyo ni njia ya MDM, inayotumika na msururu wa uandaa badala ya Add-VpnConnection. Usitafsiri majina hayo ya nodi kuwa vigezo vya PowerShell; badala yake uliza ni utaratibu gani unaotumia XML.

Hatua ya 2: Oanisha aina ya handaki na mbinu ya uthibitishaji

-TunnelType na -AuthenticationMethod ni vigezo tofauti, na lango linajali mchanganyiko pekee. Ukifaulu kimoja na ukakosea kingine unapata wasifu ambao hauunganishi na kitu, au unakwama huku handaki ikiwa juu. Weka vyote viwili waziwazi badala ya kuamini chaguo-msingi lililochaguliwa kwa huduma nyingine.

  • IKEv2 na MachineCertificate: mteja huwasilisha cheti cha kompyuta; weka pia -EncryptionLevel Required.
  • SSTP na Eap: handaki ya TLS kwanza, kisha PEAP/MSCHAPv2 au cheti ndani ya EAP. Hii inahitaji XML katika hatua ya 3.
  • SSTP, L2TP au PPTP na MSChapv2, Chap au Pap: jina la mtumiaji na nenosiri la kawaida, hakuna blob ya EAP.
  • L2TP na MSChapv2 na -Lt2pPsk: PSK inashughulikia nusu ya IPsec, mtumiaji anashughulikia PPP; zote mbili lazima zilingane na seva.

Splat huweka thamani mahali pamoja:

$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 hurudisha kitu ambacho Windows imeandika hivi punde, kwa hivyo unaweza kukikagua bila simu ya pili. Ikiwa jina tayari lipo cmdlet inakataa kuendesha; -Force huandika juu yake, jambo ambalo ni mwitikio mbaya kwenye laptop ya uzalishaji kwa sababu hutupa kimya kile mtu alichoweka kwa mkono.

Hatua ya 3: Wasilisha nyenzo za vibali kwa usahihi

Nenosiri, funguo zilizoshirikiwa mapema na blob za EAP ndipo script hizi huvunjika mara nyingi. -EapConfigXmlStream inataka XmlDocument, si njia ya faili, kwa hivyo soma na ubadilishe faili kwanza. Kupitisha mfuatano wa herufi huzalisha hitilafu ya ubadilishaji inayosikika kama tatizo la schema na huwafanya watu kuandika upya XML ambayo haikuwa na kosa.

$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 hiyo si kitu cha kubuni kutoka kwa kipande cha blogu. Inataja aina ya mbinu ya EAP na uthibitishaji wa ndani, na lango hulinganisha vyote viwili na sera yake. Mbinu ya ndani isiyolingana hushindikana baada ya handaki ya TLS kukamilika, jambo ambalo linaonekana kama nenosiri baya na haliko. Chukua XML kutoka kwa anayeendesha lango, au ihamishe kutoka kwa wasifu unaofanya kazi tayari.

Kwa IKEv2 nusu ya cheti ni utafutaji wa hifadhi. -MachineCertificateIssuerFilter huchukua kitu cha cheti, na Windows hutumia kuipata cheti cha mteja kinachofaa katika LocalMachine\My. Cheti kinahitaji ufunguo wa faragha na mnyororo ambao seva inauamini; ikikosekana mojawapo, uthibitishaji hushindikana bila maelezo yoyote muhimu, kwa hivyo kagua hifadhi kwanza:

Get-ChildItem Cert:\LocalMachine\My |
  Where-Object { $_.HasPrivateKey -and $_.NotAfter -gt (Get-Date) } |
  Select-Object Subject, Issuer, Thumbprint, NotAfter

Weka siri nje ya faili ya script. PSK inayopitishwa kwenye mstari wa amri au kupachikwa katika .ps1 huishia kwenye nakala, vipindi vilivyohifadhiwa na hazina zinazoshirikiwa, na -RememberCredential huhifadhi vibali vya mtumiaji kwa baadaye, na kugeuza jaribio la mara moja kuwa ruhusa ya kudumu.

Hatua ya 4: Amua wigo kabla ya kukimbia kwanza

Cmdlet hiyo hiyo huandika kwenye vitabu viwili tofauti vya simu. Bila -AllUserConnection wasifu ni wako na uko chini ya %APPDATA%\Microsoft\Network\Connections\Pbk\rasphone.pbk. Pamoja nayo, kutoka kwa prompt iliyoinuliwa, wasifu huonekana kwa kila akaunti, ikiwa ni pamoja na skrini ya kuingia, na huenda kwenye %ProgramData%\Microsoft\Network\Connections\Pbk\rasphone.pbk.

Wigo si mapambo. Wasifu wa watumiaji wote ndio akaunti ya huduma, kazi iliyoratibiwa au hali ya kabla ya kuingia inaweza kutumia; wasifu wa mtumiaji mmoja hauonekani kwa hizo tatu. Vitu husomwa tofauti pia: Get-VpnConnection huorodhesha maingizo ya mtumiaji wa sasa, Get-VpnConnection -AllUserConnection huorodhesha yale ya mashine yote. Chagua moja sasa, na uchukulie mabadiliko ya baadaye kama kufuta na kuunda upya badala ya kuhariri:

# elevated prompt
Remove-VpnConnection -Name "Corp IKEv2" -Force
Add-VpnConnection -Name "Corp IKEv2" -ServerAddress "vpn.example.com" `
  -TunnelType Ikev2 -AuthenticationMethod MachineCertificate `
  -EncryptionLevel Required -AllUserConnection

Hatua ya 5: Jaribu kile ambacho handaki inapaswa kuwasilisha kweli

Aikoni iliyounganishwa inathibitisha handaki ilipanda na hakuna kingine. Unganisha kutoka mstari wa amri kwanza ili hitilafu zifike kama maandishi, si kama kidirisha, kisha soma kile Windows ilirekodi:

rasdial "Corp IKEv2"
Get-VpnConnection -Name "Corp IKEv2" |
  Select-Object Name, ServerAddress, TunnelType, ConnectionStatus, SplitTunneling
Get-NetRoute -DestinationPrefix "0.0.0.0/0"

Hitilafu mbili ambazo watumiaji huripoti wakati hali bado inasema Imeunganishwa ni DNS na uelekezaji. Tatua jina la ndani na uangalie ni seva gani ilijibu; wasifu bila -DnsSuffix unaweza kufanya handaki kikamilifu na bado ushindwe kila utafutaji wa intraneti. Kisha angalia njia ya msingi: ukiwa na ugawaji wa handaki umezimwa, njia ya 0.0.0.0/0 yenye kipimo cha chini kabisa inapaswa kuelekea kwenye kiolesura cha VPN, na ukiwa umewashwa ni viambishi unavyotarajia pekee vinapaswa. Ikiwa vyote vinaonekana sawa na trafiki bado inakufa, tatizo liko nyuma ya wasifu, katika sera au kichujio cha lango.

Muunganisho unaposhindikana kabisa, msimbo hubainisha hatua ya kurudia:

  • 691: lango lilikataa vibali. Rudi hatua ya 3, si kwenye handaki.
  • 809: handaki ya IKEv2 haikukamilika kamwe. Kagua UDP 500 na 4500, na uaminifu wa cheti.
  • 789: ufunguo ulioshirikiwa mapema wa L2TP/IPsec haupo au si sahihi.
  • 868: jina la seva halikutatuliwa. Rekebisha DNS kabla ya kuhariri wasifu.

Weka amri inayofanya kazi karibu na mipangilio inayoisimba, ili mtu anayefuata aweze kuunda upya badala ya kugeuza wasifu kutoka kwa UI. Ikiwa ni lazima kuunda upya, futa kiingizo na uunde upya kwa vigezo vile vile; kurekebisha wasifu uliowekwa nusu huacha njia za kizamani na hali ya uthibitishaji nyuma. Na ikiwa faili haikuwa asili kamwe, rudi kwa mteja anayeimiliki. Faili ya .ovpn iliyovikwa kama wasifu wa IKEv2 si uingizaji, ni tiketi ya msaada.

Makala zinazohusiana