In VPN-profyl ymportearje yn PowerShell mei Add-VpnConnection
Add-VpnConnection makket allinnich native Windows-profylen. Kombinearje de tunnel en de autentikaasje mei de gateway, set it berik mei opset fêst en test dan de rûtes en DNS.
Der is gjin Import-VpnProfile-cmdlet, en dejinge dy't it meast liket, Add-VpnConnection, lêst nea in .ovpn- of .conf-bestân. It bout in native Windows-profyl op út 'e parameters dy't jo trochjouwe, en dêrom is it earste kontrôlepunt hjir it bestânformaat en net de opdrachtregel. As de gateway SSTP, IKEv2, L2TP/IPsec of PPTP praat, kin Windows it profyl besitte en jildt de rest fan 'e list. As jo in OpenVPN- of WireGuard-bestân krigen hawwe, stopje dan by stap ien: dy klanten besitte har eigen ymporteurs.
Stap 1: Befêstigje hokker profyl Windows echt besitte kin
Rin Get-Command -Module VpnClient op 'e masine foar al it oare. Windows 10, Windows 11 en Server 2016 of letter leverje de module; as er ûntbrekt, sil gjin kopiearre skript dizze host in native profyl akseptearje litte. De cmdlets dy't taakje binne Add-VpnConnection, Get-VpnConnection en Remove-VpnConnection, en de parameterlist yn 'e Add-VpnConnection-referinsje is ien kear folslein lêzen wol wurdich.
Native betsjut dat de Windows VPN-stapel de tunnel beëiniget. Dat omfettet IKEv2, faak mei in masine-sertifikaat; SSTP, dat TLS is mei brûker- of sertifikaat-autentikaasje fan binnen; en L2TP/IPsec mei in foarôf dielde kaai. In .ovpn-bestân is in OpenVPN-skript, gjin Windows-ferbining: it draacht rjochtlinen lykas remote, cipher of tls-auth dêr't de Windows-stapel gjin begryp fan hat. In WireGuard .conf is itselde ferhaal mei PrivateKey en AllowedIPs; it iene yn it oare omsette is gjin parameterkar mar in oare tunnelimplementaasje.
Der is in tredde tûke. As in behearder jo in VPNv2 CSP XML-dokumint of in Intune-profyl jout, is dat it MDM-paad, tapast troch de ynrjochtingsstapel en net troch Add-VpnConnection. Oerset dy knooppuntnammen net nei PowerShell-parameters; freegje ynstee hokker meganisme de XML tapast.
Stap 2: Keppelje it tunneltype oan 'e autentikaasjemetoade
-TunnelType en -AuthenticationMethod binne aparte parameters, en de gateway skoot allinnich om 'e kombinaasje. Ien goed en de oare ferkeard jout in profyl dat nearne mei ferbynt, of dat fêstset mei de tunnel al omheech. Set beide eksplisyt ynstee fan te fertrouwen op in standert dy't foar in oare tsjinst keazen is.
- IKEv2 mei MachineCertificate: de klant presintearret in kompjûtersertifikaat; set ek -EncryptionLevel Required.
- SSTP mei Eap: earst de TLS-tunnel, dan PEAP/MSCHAPv2 of in sertifikaat binnen EAP. Dat hat de XML fan stap 3 nedich.
- SSTP, L2TP of PPTP mei MSChapv2, Chap of Pap: gewoane brûkersnamme en wachtwurd, gjin EAP-blob.
- L2TP mei MSChapv2 en -Lt2pPsk: de PSK dekt de IPsec-helte, de brûker dekt PPP; beide moatte by de server passe.
In splat hâldt de wearden op ien plak:
$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 jout it objekt werom dat Windows krekt skreaun hat, sadat jo it sûnder twadde oprop besjen kinne. As de namme al bestiet, wegeret de cmdlet te rinnen; -Force oerskriuwt it, en dat is de ferkearde refleks op in produksjelaptop, want it smyt stilwei fuort wat immen mei de hân ynsteld hat.
Stap 3: Jou it bewiismateriaal goed oer
Wachtwurden, foarôf dielde kaaien en EAP-blobs binne it plak dêr't dizze skripts meastentiids brekke. -EapConfigXmlStream wol in XmlDocument, gjin paad, dus lês en konvertearje it bestân earst. In tekenrige trochjaan jout in konverzjeflat dy't op in skema-probleem liket en minsken XML weromskriuwe lit dat nea ferkeard wie.
$eap = [xml](Get-Content -Raw .\peap-mschapv2.xml)
Add-VpnConnection -Name "Corp SSTP" -ServerAddress "sstp.example.com" `
-TunnelType Sstp -AuthenticationMethod Eap `
-EapConfigXmlStream $eap -EncryptionLevel RequiredDy XML is net eat om út in blogstikje te betinken. Hy neamt it EAP-metoadetype en de ynderlike autentikaasje, en de gateway fergeliket beide mei syn belied. In net-passeande ynderlike metoade falt nei't de TLS-hânskodding klear is, wat krekt op in ferkeard wachtwurd liket en it net is. Nim de XML fan wa't de gateway beheart, of eksportearje him út in profyl dat al wurket.
Foar IKEv2 is de sertifikaathelte in sykjen yn 'e opslach. -MachineCertificateIssuerFilter nimt in sertifikaatobjekt, en Windows brûkt it om in brûkber kliïntsertifikaat yn LocalMachine\My te finen. It sertifikaat hat in priveekaai en in keatling nedich dêr't de server op fertrout; as ien fan beide ûntbrekt, falt de autentikaasje sûnder nuttige details, dus kontrolearje earst de opslach:
Get-ChildItem Cert:\LocalMachine\My |
Where-Object { $_.HasPrivateKey -and $_.NotAfter -gt (Get-Date) } |
Select-Object Subject, Issuer, Thumbprint, NotAfterHâld geheimen bûten it skriptbestân. In PSK dy't op 'e opdrachtregel jûn of yn in .ps1 bakt wurdt, bedarret yn transkripsjes, bewarre sesjes en dielde repositories, en -RememberCredential bewarret brûkersbewizen foar letter, wat in ienmalige test yn in bliuwende tastimming feroaret.
Stap 4: Beslis it berik foar de earste run
Deselde cmdlet skriuwt yn twa ferskillende telefoanboeken. Sûnder -AllUserConnection heart it profyl by jo en stiet it ûnder %APPDATA%\Microsoft\Network\Connections\Pbk\rasphone.pbk. Mei dy opsje, fan in ferhege opdrachtprompt, giet it profyl nei %ProgramData%\Microsoft\Network\Connections\Pbk\rasphone.pbk en is it sichtber foar elk akkount, ek foar it oanmeldskerm.
It berik is net kosmetysk. In profyl foar alle brûkers is wat in tsjinstakkount, in plande taak of in senario foarôfgeand oan 'e oanmelding brûke kin; in profyl per brûker is foar alle trije ûnsichtber. De objekten wurde ek oars lêzen: Get-VpnConnection listet de yngongen fan 'e hjoeddeiske brûker op, Get-VpnConnection -AllUserConnection dy fan 'e hiele masine. Kies no ien, en behannelje in lettere feroaring as wiskje en opnij meitsje ynstee fan bewurkje:
# elevated prompt
Remove-VpnConnection -Name "Corp IKEv2" -Force
Add-VpnConnection -Name "Corp IKEv2" -ServerAddress "vpn.example.com" `
-TunnelType Ikev2 -AuthenticationMethod MachineCertificate `
-EncryptionLevel Required -AllUserConnectionStap 5: Test wat in tunnel echt leverje moat
In ferbûn ikoan bewiist dat de tunnel omheech kaam en neat oars. Ferbyn earst fan 'e opdrachtregel, sadat flaten as tekst binnenkomme en net as in dialoochfinsters, en lês dan werom wat Windows fêstlein hat:
rasdial "Corp IKEv2"
Get-VpnConnection -Name "Corp IKEv2" |
Select-Object Name, ServerAddress, TunnelType, ConnectionStatus, SplitTunneling
Get-NetRoute -DestinationPrefix "0.0.0.0/0"De twa flaten dy't brûkers melde wylst de status noch Connected seit, binne DNS en rûtes. Los in ynderlike namme op en kontrolearje hokker server antwurde; in profyl sûnder -DnsSuffix kin perfekt tunnelje en dochs by elke intranet-sykopdracht misse. Sjoch dan nei de standertrûte: mei split tunneling út moat de 0.0.0.0/0-rûte mei de leechste metryk nei de VPN-ynterface wiisd, en mei dy oan allinnich de foarheaksels dy't jo ferwachtsje. As beide goed lykje en it ferkear dochs stjert, sit it probleem foarby it profyl, yn belied of yn it gateway-filter.
As de ferbining folslein falt, beheindet de koade de stap om werom te gean:
- 691: de gateway wegere de bewizen. Gean werom nei stap 3, net nei de tunnel.
- 809: de IKEv2-hânskodding kaam nea klear. Kontrolearje UDP 500 en 4500, en it fertrouwen fan it sertifikaat.
- 789: de foarôf dielde L2TP/IPsec-kaai ûntbrekt of is ferkeard.
- 868: de servernamme waard net oplost. Reparearje DNS foar't jo it profyl bewurkje.
Hâld de wurkjende opdracht njonken de ynstellingen dy't er kodearret, sadat de folgjende persoan opnij bouwe kin ynstee fan it profyl fan 'e UI ôf werom te ûntwerpen. As jo dochs opnij bouwe moatte, wiskje dan de yngong en meitsje him opnij mei deselde parameters; in heal konfigurearre profyl patchesje lit ferâldere rûtes en autentikaasjestatus efter. En as it bestân nea native wie, gean werom nei de klant dy't it besit. In .ovpn dy't as IKEv2-profyl ferklaaid is, is gjin ymport, it is in stipekaartsje.