Mewnforio proffil VPN yn PowerShell gydag Add-VpnConnection
Mae Add-VpnConnection yn adeiladu proffiliau Windows brodorol yn unig. Parwch y twmnel a'r dilysiad â'r porth, gosodwch y cwmpas yn fwriadol, yna profwch lwybrau a DNS.
Nid oes cmdlet Import-VpnProfile, a'r un sy'n edrych agosaf, Add-VpnConnection, byth yn darllen ffeil .ovpn na .conf. Mae'n cydosod proffil Windows brodorol o'r paramedrau rydych chi'n eu hanfon, a dyna pam mai'r man gwirio cyntaf yma yw fformat y ffeil ac nid y llinell orchymyn. Os yw'r porth yn siarad SSTP, IKEv2, L2TP/IPsec neu PPTP, gall Windows fod yn berchen ar y proffil ac mae gweddill y rhestr yn berthnasol. Os rhoddwyd ffeil OpenVPN neu WireGuard i chi, stopiwch ar gam un: mae gan y cleientiaid hynny eu mewnforwyr eu hunain.
Cam 1: Cadarnhewch pa broffil y gall Windows fod yn berchen arno mewn gwirionedd
Rhedwch Get-Command -Module VpnClient ar y peiriant cyn unrhyw beth arall. Mae Windows 10, Windows 11 a Server 2016 neu ddiweddarach yn danfon y modiwl; os yw ar goll, ni fydd unrhyw sgript a gopïwyd yn gwneud i'r gwesteiwr hwn dderbyn proffil brodorol. Y cmdletau sy'n bwysig yw Add-VpnConnection, Get-VpnConnection a Remove-VpnConnection, ac mae'r rhestr baramedrau yn gyfeirlyfr Add-VpnConnection yn werth ei darllen unwaith yn llawn.
Mae brodorol yn golygu bod stac VPN Windows yn terfynu'r twmnel. Mae hynny'n cwmpasu IKEv2, yn aml gyda thystysgrif peiriant; SSTP, sef TLS gyda dilysiad defnyddiwr neu dystysgrif y tu mewn; a L2TP/IPsec gyda chyfrinniad a rennir ymlaen llaw. Sgript OpenVPN yw ffeil .ovpn, nid cysylltiad Windows: mae'n cario cyfarwyddebau fel remote, cipher neu tls-auth nad oes gan stac Windows unrhyw syniad ohonynt. Mae WireGuard .conf yr un stori gyda PrivateKey ac AllowedIPs; nid dewis paramedr yw trosi'r naill i'r llall ond gweithrediad twmnel gwahanol.
Mae trydedd gangen. Os yw gweinyddwr yn rhoi dogfen VPNv2 CSP XML neu broffil Intune i chi, dyna'r llwybr MDM, a weithredir gan y stac darparu yn hytrach nag Add-VpnConnection. Peidiwch â chyfieithu'r enwau nodau hynny'n baramedrau PowerShell; gofynnwch pa fecanwaith sy'n gweithredu'r XML.
Cam 2: Parwch y math o dwmnel â'r dull dilysu
Mae -TunnelType a -AuthenticationMethod yn baramedrau ar wahân, a dim ond y cyfuniad sy'n poeni'r porth. Cywirwch un a chael y llall yn anghywir ac fe gewch broffil nad yw'n cysylltu â dim, neu sy'n aros gyda'r twmnel eisoes i fyny. Gosodwch y ddau yn benodol yn lle ymddiried mewn rhagosodiad a ddewiswyd ar gyfer gwasanaeth arall.
- IKEv2 gyda MachineCertificate: mae'r cleient yn cyflwyno tystysgrif cyfrifiadur; gosodwch -EncryptionLevel Required hefyd.
- SSTP gyda Eap: twmnel TLS yn gyntaf, yna PEAP/MSCHAPv2 neu dystysgrif y tu mewn i EAP. Mae hyn angen yr XML yng ngham 3.
- SSTP, L2TP neu PPTP gyda MSChapv2, Chap neu Pap: enw defnyddiwr a chyfrinair cyffredin, dim blob EAP.
- L2TP gyda MSChapv2 a -Lt2pPsk: mae'r PSK yn cwmpasu hanner IPsec, mae'r defnyddiwr yn cwmpasu PPP; rhaid i'r ddau gyd-fynd â'r gweinydd.
Mae splat yn cadw'r gwerthoedd mewn un man:
$p = @{
Name = "Corp IKEv2"
ServerAddress = "vpn.example.com"
TunnelType = "Ikev2"
AuthenticationMethod = "MachineCertificate"
EncryptionLevel = "Required"
SplitTunneling = $false
DnsSuffix = "corp.example.com"
}
Add-VpnConnection @p -PassThruMae -PassThru yn dychwelyd y gwrthrych y newydd ysgrifennu Windows, felly gallwch ei archwilio heb ail alwad. Os yw'r enw eisoes yn bodoli mae'r cmdlet yn gwrthod rhedeg; mae -Force yn ei throsysgrifo, sef y reflex anghywir ar liniadur cynhyrchu oherwydd ei fod yn taflu'n dawel beth bynnag a ffurfweddwyd â llaw.
Cam 3: Trosglwyddwch y deunydd cymhwyster yn gywir
Mae cyfrineiriau, cyfrinniadau a rennir ymlaen llaw a blobs EAP yn lle mae'r sgriptiau hyn yn torri fel arfer. Mae -EapConfigXmlStream eisiau XmlDocument, nid llwybr, felly darllenwch a chastiwch y ffeil yn gyntaf. Mae pasio llinyn yn cynhyrchu gwall trosi sy'n edrych fel problem sgema ac sy'n gwneud i bobl ailysgrifennu XML nad oedd erioed yn anghywir.
$eap = [xml](Get-Content -Raw .\peap-mschapv2.xml)
Add-VpnConnection -Name "Corp SSTP" -ServerAddress "sstp.example.com" `
-TunnelType Sstp -AuthenticationMethod Eap `
-EapConfigXmlStream $eap -EncryptionLevel RequiredNid yw'r XML hwnnw'n rhywbeth i'w ddyfeisio o ddarn o flog. Mae'n enwi math dull EAP a'r dilysiad mewnol, ac mae'r porth yn cymharu'r ddau â'i bolisi. Mae dull mewnol nad yw'n cyd-fynd yn methu ar ôl i'r ysgwyd llaw TLS gwblhau, sy'n edrych yn union fel cyfrinair drwg ac nid yw. Cymerwch yr XML gan pwy bynnag sy'n rhedeg y porth, neu ei allforio o broffil sy'n gweithio'n barod.
Ar gyfer IKEv2 mae'r hanner tystysgrif yn chwiliad stôr. Mae -MachineCertificateIssuerFilter yn cymryd gwrthrych tystysgrif, ac mae Windows yn ei ddefnyddio i ddod o hyd i dystysgrif cleient defnyddiadwy yn LocalMachine\My. Mae angen allwedd breifat a chadwyn y mae'r gweinydd yn ymddiried ynddi ar y dystysgrif; pan fo'r naill neu'r llall ar goll, mae dilysu'n methu heb fanylyn defnyddiol, felly gwiriwch y stôr yn gyntaf:
Get-ChildItem Cert:\LocalMachine\My |
Where-Object { $_.HasPrivateKey -and $_.NotAfter -gt (Get-Date) } |
Select-Object Subject, Issuer, Thumbprint, NotAfterCadwch gyfrinachau allan o'r ffeil sgript. Mae PSK a basiwyd ar y llinell orchymyn neu a bobiwyd i .ps1 yn gorffen mewn trawsgrifiadau, sesiynau a arbedwyd a chronfeydd a rennir, ac mae -RememberCredential yn cacheio cymwysterau defnyddiwr ar gyfer wedyn, gan droi prawf unwaith yn ganiatâd parhaol.
Cam 4: Penderfynwch ar y cwmpas cyn y rhediad cyntaf
Mae'r un cmdlet yn ysgrifennu i ddwy lyfr ffôn wahanol. Heb -AllUserConnection mae'r proffil yn perthyn i chi ac yn byw o dan %APPDATA%\Microsoft\Network\Connections\Pbk\rasphone.pbk. Ag ef, o bromp wedi'i ddyrchafu, mae'r proffil yn mynd i %ProgramData%\Microsoft\Network\Connections\Pbk\rasphone.pbk ac yn weladwy i bob cyfrif, gan gynnwys y sgrin fewngofnodi.
Nid yw cwmpas yn gosmetig. Proffil holl-ddefnyddiwr yw'r hyn y gall cyfrif gwasanaeth, tasg a drefnwyd neu senario cyn mewngofnodi ei ddefnyddio; mae proffil fesul defnyddiwr yn anweladwy i'r tri. Mae'r gwrthrychau'n cael eu darllen yn wahanol hefyd: mae Get-VpnConnection yn rhestru cofnodion y defnyddiwr cyfredol, mae Get-VpnConnection -AllUserConnection yn rhestru'r rhai ar draws y peiriant. Dewiswch un nawr, a thriniwch newid diweddarach fel dileu ac ail-greu yn hytrach nag olygu:
# elevated prompt
Remove-VpnConnection -Name "Corp IKEv2" -Force
Add-VpnConnection -Name "Corp IKEv2" -ServerAddress "vpn.example.com" `
-TunnelType Ikev2 -AuthenticationMethod MachineCertificate `
-EncryptionLevel Required -AllUserConnectionCam 5: Profwch beth y mae'n rhaid i dwmnel ei ddanfon mewn gwirionedd
Mae eicon cysylltiedig yn profi bod y twmnel wedi codi a dim arall. Cysylltwch o'r llinell orchymyn yn gyntaf fel bod methiannau'n cyrraedd fel testun, nid fel deialog, yna darllenwch yn ôl beth a gofnododd Windows:
rasdial "Corp IKEv2"
Get-VpnConnection -Name "Corp IKEv2" |
Select-Object Name, ServerAddress, TunnelType, ConnectionStatus, SplitTunneling
Get-NetRoute -DestinationPrefix "0.0.0.0/0"Y ddau fethiant y mae defnyddwyr yn eu hadrodd tra bo'r statws yn dal i ddweud Connected yw DNS a llwybro. Datryswch enw mewnol a gwiriwch pa weinydd a atebodd; gall proffil heb -DnsSuffix dwmnelio'n berffaith ac eto fethu pob chwiliad mewnrwyd. Yna edrychwch ar y llwybr diofyn: gyda split tunneling i ffwrdd dylai'r llwybr 0.0.0.0/0 â'r metrig isaf bwyntio i mewn i ryngwyneb VPN, a chydag ef ymlaen dim ond y rhagddodiaid rydych yn eu disgwyl. Os yw'r ddau'n edrych yn iawn ac mae traffig yn dal i farw, mae'r broblem y tu hwnt i'r proffil, mewn polisi neu hidlydd y porth.
Pan fydd y cysylltiad yn methu'n llwyr, mae'r cod yn culhau'r cam i ddychwelyd ato:
- 691: gwrthododd y porth y cymwysterau. Ewch yn ôl i gam 3, nid i'r twmnel.
- 809: ni chwblhaodd ysgwyd llaw IKEv2 byth. Gwiriwch UDP 500 a 4500, ac ymddiriedaeth tystysgrifau.
- 789: mae cyfrinniad a rennir ymlaen llaw L2TP/IPsec ar goll neu'n anghywir.
- 868: ni ddatryswyd enw'r gweinydd. Trwsiwch DNS cyn golygu'r proffil.
Cadwch y gorchymyn sy'n gweithio wrth ymyl y gosodiadau y mae'n eu hamgodio, fel y gall y person nesaf ailadeiladu yn lle dadansoddi'r proffil yn ôl o'r rhyngwyneb. Os oes rhaid ailadeiladu, dilëwch y cofnod a'i ail-greu o'r un paramedrau; mae clytio proffil hanner-ffurfweddedig yn gadael llwybrau a chyflwr dilysu hen ffasiwn. Ac os nad oedd y ffeil byth yn frodorol, ewch yn ôl at y cleient sy'n berchen arni. Nid mewnforiad yw .ovpn wedi'i wisgo fel proffil IKEv2, tocyn cymorth ydyw.