E VPN-Profil an PowerShell mat Add-VpnConnection importéieren
Add-VpnConnection schaaft nëmmen natif Windows-Profiler. Passt den Tunnel an d'Authentifikatioun un de Gateway un, setzt de Beräich bewosst a testt duerno d'Routen an DNS.
Et gëtt kee cmdlet Import-VpnProfile, an deen deen am noosten ass, Add-VpnConnection, liest ni eng .ovpn- oder .conf-Datei. En setzt en nativen Windows-Profil aus de Parameteren zesummen, déi Dir gitt, an dofir ass den éischte Kontrollpunkt hei d'Dateiformat an net d'Befehlszeil. Wann de Gateway SSTP, IKEv2, L2TP/IPsec oder PPTP schwätzt, kann Windows de Profil besëtzen an de Rescht vun der Lëscht gëllt. Wann Dir eng OpenVPN- oder WireGuard-Datei kritt hutt, stoppt beim éischte Schrëtt: déi Cliente besëtzen hir eegen Importeren.
Schrëtt 1: Bestätegt, wéi ee Profil Windows wierklech besëtze kann
Fëllt Get-Command -Module VpnClient op der Maschinn aus, virun allem aneren. Windows 10, Windows 11 a Server 2016 oder méi nei liwweren de Modul; wann en feelt, wäert kee kopéierte Skript dësen Host dozou bréngen, en nativen Profil ze akzeptéieren. D'Cmdleten déi zielen sinn Add-VpnConnection, Get-VpnConnection an Remove-VpnConnection, an d'Parameterlëscht an der Add-VpnConnection-Referenz ass eng vollstänneg Lies wäert.
Natif heescht, datt de Windows-VPN-Stack den Tunnel ofschléisst. Dat ëmfaasst IKEv2, dacks mat engem Maschinne-Zertifikat; SSTP, dat TLS mat Benotzer- oder Zertifikatsauthentifikatioun dobannen ass; an L2TP/IPsec mat engem virgedeelte Schlëssel. Eng .ovpn-Datei ass en OpenVPN-Skript, keng Windows-Verbindung: si dréit Direktiven wéi remote, cipher oder tls-auth, vun deenen de Windows-Stack keng Ahnung huet. Eng WireGuard .conf ass déiselwecht Geschicht mat PrivateKey an AllowedIPs; dat eeent an dat anert ëmzewandelen ass keng Parameterwiel, mä eng aner Tunnel-Implementéierung.
Et gëtt eng drëtt Branche. Wann en Administrateur Iech en VPNv2 CSP XML-Dokument oder en Intune-Profil gëtt, ass dat den MDM-Wee, deen de Provisionéierungs-Stack uwendt an net Add-VpnConnection. Iwwersetzt déi Nodennimm net a PowerShell-Parameteren; frot amplaz, wéi ee Mechanismus den XML uwendt.
Schrëtt 2: Verbannt den Tunneltyp mat der Authentifikatiounsmethod
-TunnelType an -AuthenticationMethod si getrennte Parameteren, an de Gateway këmmert sech just ëm d'Kombinatioun. Een ass richteg an den aneren falsch an Dir kritt e Profil, deen néierendwou verbënnt, oder dee stoe bleift, wärend den Tunnel schon uewen ass. Setzt béid ausdrécklech, amplaz op en Default ze vertrauen, dee fir eng aner Servicer gewielt gouf.
- IKEv2 mat MachineCertificate: de Client presentéiert en Computerzertifikat; setzt och -EncryptionLevel Required.
- SSTP mat Eap: fir d'éischt den TLS-Tunnel, duerno PEAP/MSCHAPv2 oder en Zertifikat bannen an EAP. Dëst brauch den XML aus Schrëtt 3.
- SSTP, L2TP oder PPTP mat MSChapv2, Chap oder Pap: einfachen Benotzernumm a Passwuert, keen EAP-Blob.
- L2TP mat MSChapv2 an -Lt2pPsk: de PSK deckt d'IPsec-Halscheed, de Benotzer deckt PPP; béid musse mam Server iwwerenee stëmmen.
E Splat hält d'Wäerter op enger Plaz:
$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 gëtt dat Objet zréck, dat Windows just geschriwwen huet, sou datt Dir et ouni zweeten Opruff kënnt kontrolléieren. Wann den Numm schon existéiert, refuséiert de Cmdlet ze lafen; -Force iwwerschreift en, an dat ass de falsche Reflex op engem Produktiouns-Laptop, well et stëll ewechgeheit, wat een manuell konfiguréiert huet.
Schrëtt 3: Gitt den Authentifikatiounsmaterial richteg weider
Passwierder, virgedeelte Schlësselen an EAP-Bloe sinn déi Plaz, wou dës Skripten normalerweis briechen. -EapConfigXmlStream wëll en XmlDocument, keen Pad, also liest an konvertéiert d'Datei fir d'éischt. Eng Zeechenketten ze ginn produzéiert e Konversiounsfehler, deen wéi e Schema-Problem ausgesäit an d'Leit dozou bréngt, XML ëmzeschreiwen, dat ni falsch war.
$eap = [xml](Get-Content -Raw .\peap-mschapv2.xml)
Add-VpnConnection -Name "Corp SSTP" -ServerAddress "sstp.example.com" `
-TunnelType Sstp -AuthenticationMethod Eap `
-EapConfigXmlStream $eap -EncryptionLevel RequiredDee XML ass net eppes, wat een aus engem Blogstéck erfinnt. En nennt den EAP-Methodentyp an déi bannescht Authentifikatioun, an de Gateway vergläicht béid mat senger Politik. Eng net passend bannescht Method feelt, nodeems den TLS-Handshake fäerdeg ass, wat genee wéi e falscht Passwuert ausgesäit an et net ass. Huelt den XML vun deem, deen de Gateway bedreift, oder exportéiert en aus engem Profil, deen schon funktionéiert.
Fir IKEv2 ass d'Zertifikatshalscheed eng Sich am Store. -MachineCertificateIssuerFilter hëlt en Zertifikatsobjet, an Windows benotzt en, fir en notzbare Clientzertifikat an LocalMachine\My ze fannen. Den Zertifikat brauch e private Schlëssel an eng Kette, déi de Server vertraut; wann ee vun béiden feelt, feelt d'Authentifikatioun ouni nëtzlech Detailer, also kontrolléiert fir d'éischt de Store:
Get-ChildItem Cert:\LocalMachine\My |
Where-Object { $_.HasPrivateKey -and $_.NotAfter -gt (Get-Date) } |
Select-Object Subject, Issuer, Thumbprint, NotAfterHalt Geheimnisser aus der Skriptdatei eraus. E PSK, deen op der Befehlszeil ginn oder an engem .ps1 gebak gëtt, landt an Transkriptiounen, gespäicherte Sessiounen an gedeelte Repositories, an -RememberCredential cacht d'Benotzercredentialen fir méi spéit, wat en eenzegaartegen Test an eng dauerhaft Erlaabnis ëmwandelt.
Schrëtt 4: Entscheet de Beräich virun der éischter Ausféierung
Dee selwechten Cmdlet schreift an zwee verschidde Telefonsbicher. Ouni -AllUserConnection gehéiert de Profil Iech an läit ënner %APPDATA%\Microsoft\Network\Connections\Pbk\rasphone.pbk. Doma, vun enger erhéichter Opfuerderung aus, geet de Profil op %ProgramData%\Microsoft\Network\Connections\Pbk\rasphone.pbk an ass fir all Kont sichtbar, inklusiv dem Umellbildschierm.
De Beräich ass net kosmetesch. En All-Benotzer-Profil ass dat, wat e Serviceraccount, eng geplangte Aufgab oder en Szenario virum Umellen notze kënnen; en Pro-Benotzer-Profil ass fir all dräi onsiichtbar. D'Objete gi och anescht gelies: Get-VpnConnection lëscht d'Entréeë vum aktuelle Benotzer, Get-VpnConnection -AllUserConnection déi vun der ganzer Maschinn. Wielt elo ee, an behandelt eng spéider Ännerung als Läschen an Neischafen amplaz als Änneren:
# elevated prompt
Remove-VpnConnection -Name "Corp IKEv2" -Force
Add-VpnConnection -Name "Corp IKEv2" -ServerAddress "vpn.example.com" `
-TunnelType Ikev2 -AuthenticationMethod MachineCertificate `
-EncryptionLevel Required -AllUserConnectionSchrëtt 5: Testt, wat en Tunnel wierklech muss liwweren
E verbonnen Icon beweist, datt den Tunnel uewen ass an soss näischt. Verbënnt Iech fir d'éischt vun der Befehlszeil, sou datt Feeler als Text ukomme an net als Dialog, a liest dann zréck, wat Windows opgezeechent huet:
rasdial "Corp IKEv2"
Get-VpnConnection -Name "Corp IKEv2" |
Select-Object Name, ServerAddress, TunnelType, ConnectionStatus, SplitTunneling
Get-NetRoute -DestinationPrefix "0.0.0.0/0"Déi zwee Feeler, déi Benotzer mellen, wärend de Status nach ëmmer Connected seet, sinn DNS a Routing. Léist en internen Numm op a kuckt, wéi ee Server geäntwert huet; en Profil ouni -DnsSuffix kann perfekt tunnelen an trotzdem bei all Intranet-Sich feelen. Kuckt dann d'Standardroute: mat ausgeschaltem Split Tunneling sollt d'Route 0.0.0.0/0 mat der niddrechster Metrik an d'VPN-Interface weisen, a mat ageschaltem nëmmen d'Präfixer, déi Dir erwaart. Wann béid richteg ausgesinn an den Trafic awer stierft, ass de Problem iwwer de Profil eraus, an der Politik oder am Gateway-Filter.
Wann d'Verbindung komplett feelt, engt de Code de Schrëtt an, op deen een zréckkucke soll:
- 691: de Gateway huet d'Credentialen ofgelehnt. Gitt zréck op Schrëtt 3, net op den Tunnel.
- 809: den IKEv2-Handshake gouf ni fäerdeg. Kontrolléiert UDP 500 an 4500, an d'Vertrauen an den Zertifikat.
- 789: de virgedeelte L2TP/IPsec-Schlëssel feelt oder ass falsch.
- 868: den Servernumm gouf net opgeléist. Maacht DNS a Krack, ier Dir de Profil ännert.
Halt de funktionéierende Befehl nieft de Parameteren, déi en kodéiert, sou datt déi nächst Persoun nei baue kann amplaz de Profil aus der UI eraus z'entschlësselen. Wann Dir wierklech nei musst bauen, läscht den Entrée a schaaft en nach mat deene selwechte Parameteren nei; en halwer konfiguréierte Profil ze flecken léisst al Routen an Authentifikatiounsstatus zréck. An wann d'Datei ni natif war, gitt zréck op de Client, deem se gehéiert. En .ovpn, deen als IKEv2-Profil verkleet ass, ass keen Import, mä en Support-Ticket.