Set-VpnConnection
Set-VpnConnection [[-RememberCredential] <Boolean>] [[-UseWinlogonCredential] <Boolean>] [[-EapConfigXmlStream]<XmlDocument>] [-Name*] <String> [[-ServerAddress] <String>] [[-TunnelType] {Pptp | L2tp | Sstp | Ikev2 |Automatic}] [[-EncryptionLevel] {NoEncryption | Optional | Required | Maximum | Custom}] [[-AuthenticationMethod]{Pap | Chap | MSChapv2 | Eap | MachineCertificate}] [[-SplitTunneling] <Boolean>] [[-AllUserConnection]][[-L2tpPsk] <String>] [-CimSession <CimSession[]>] [-DnsSuffix <String>] [-Force] [-IdleDisconnectSeconds<UInt32>] [-MachineCertificateEKUFilter <String[]>] [-MachineCertificateIssuerFilter <X509Certificate2>][-PassThru] [-ServerList <CimInstance[]>] [-ThrottleLimit <Int32>] [-Confirm] [-WhatIf] [<CommonParameters>]
Set-VpnConnection [[-RememberCredential] <Boolean>] [[-PlugInApplicationID] <String>] [-Name*] <String>[[-ServerAddress] <String>] [[-ThirdPartyVpn]] [[-SplitTunneling] <Boolean>] [-CimSession <CimSession[]>][-CustomConfiguration <XmlDocument>] [-DnsSuffix <String>] [-Force] [-IdleDisconnectSeconds <UInt32>] [-PassThru][-ServerList <CimInstance[]>] [-ThrottleLimit <Int32>] [-Confirm] [-WhatIf] [<CommonParameters>]
The Set-VpnConnection cmdlet changes the configuration settings of an existing VPN connection profile. If the VPN profile specified does not exist, you see an error. If errors occur when you modify the VPN profile, the cmdlet returns the error information.
Parameters
-AllUserConnection [<SwitchParameter>]
- Accepts pipeline input ByPropertyName
Indicates that the VPN connection specified is in the global phone book.
-AuthenticationMethod [<String[]>]
- Accepts pipeline input ByPropertyName
Specifies the authentication method to use for the VPN connection. The acceptable values for this parameter are:
-- PAP -- CHAP -- MSCHAPv2 -- EAP
-CimSession [<CimSession[]>]
Runs the cmdlet in a remote session or on a remote computer. Enter a computer name or a session object, such as the output of a New-CimSession or Get-CimSession cmdlet. The default is the current session on the local computer.
-CustomConfiguration [<XmlDocument>]
- Accepts pipeline input ByPropertyName
Specifies an XML document that allows vendors to specify custom configuration information.
-DnsSuffix [<String>]
- Accepts pipeline input ByPropertyName
Specifies the DNS suffix of the VPN connection.
-EapConfigXmlStream [<XmlDocument>]
- Accepts pipeline input ByPropertyName
Specifies the contents of the EAP XML configuration file, which includes the EAP method ID.
-EncryptionLevel [<String>]
- Accepts pipeline input ByPropertyName
Specifies the encryption level for the VPN connection. The acceptable values for this parameter are:
-- NoEncryption -- Optional -- Required -- Maximum
-Force [<SwitchParameter>]
Indicates that the pre-shared key (PSK) value is supplied over an insecure channel, if L2TP is used.
-IdleDisconnectSeconds [<UInt32>]
- Accepts pipeline input ByPropertyName
Specifies the time, in seconds, before closing an idle connection.
-L2tpPsk [<String>]
- Accepts pipeline input ByPropertyName
Specifies the value of the PSK to be used for L2TP authentication. If this parameter is not specified, a certificate is used for L2TP.
-MachineCertificateEKUFilter [<String[]>]
- Accepts pipeline input ByPropertyName
Specifies an array of enhanced key usage (EKU) filters for Internet Key Exchange version 2 (IKEv2) machine certificate selection.
-MachineCertificateIssuerFilter [<X509Certificate2>]
- Accepts pipeline input ByPropertyName
Specifies the X509 certificate of the issuer filter for IKEv2 machine certificate selection.
-Name <String>
- This value is required
- Accepts pipeline input ByPropertyName
Specifies the name of the VPN connection profile.
-PassThru [<SwitchParameter>]
Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output.
-PlugInApplicationID [<String>]
- Accepts pipeline input ByPropertyName
Specifies the identifier for a third party application.
-RememberCredential [<Boolean>]
- Accepts pipeline input ByPropertyName
Indicates that the credentials supplied at the time of first successful connection is stored in the cache, if set to $True.
-ServerAddress [<String>]
- Accepts pipeline input ByPropertyName
Specifies the address of the remote VPN server to which the client connects. You can specify the address as a fully qualified domain name (FQDN), an IPv4 address, or an IPv6 address.
-ServerList [<CimInstance[]>]
- Accepts pipeline input ByPropertyName
Specifies an array of VPN servers. The VPN client can connect to these servers.
-SplitTunneling [<Boolean>]
- Accepts pipeline input ByPropertyName
Indicates whether the cmdlet enables split tunneling for the VPN connection profile. When you enable split tunneling, traffic to destinations outside the intranet does not flow through the VPN tunnel. Specify a value of $True to enable split tunneling.
-ThirdPartyVpn [<SwitchParameter>]
Indicates that the cmdlet runs for a third party profile.
-ThrottleLimit [<Int32>]
Specifies the maximum number of concurrent operations that can be established to run the cmdlet. If this parameter is omitted or a value of 0 is entered, then Windows PowerShellr calculates an optimum throttle limit for the cmdlet based on the number of CIM cmdlets that are running on the computer. The throttle limit applies only to the current cmdlet, not to the session or to the computer.
-TunnelType [<String>]
- Accepts pipeline input ByPropertyName
Specifies the type of tunnel used for the VPN connection. The acceptable values for this parameter are:
-- PPTP -- L2TP -- SSTP -- IKEv2 -- Automatic
-UseWinlogonCredential [<Boolean>]
- Accepts pipeline input ByPropertyName
Indicates whether to use Windows logon credentials. Specify a value of $True to use MSCHAPv2 or EAP-MSCHAPv2 as the authentication method and use Windows logon credentials automatically when connecting with the VPN connection profile.
-Confirm [<SwitchParameter>]
- Default value is false
Prompts you for confirmation before running the cmdlet.Prompts you for confirmation before running the cmdlet.
-WhatIf [<SwitchParameter>]
- Default value is false
Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run.
<CommonParameters>
This cmdlet supports the common parameters: Verbose, Debug,ErrorAction, ErrorVariable, WarningAction, WarningVariable,OutBuffer, PipelineVariable, and OutVariable.
Outputs
Microsoft.Management.Infrastructure.CimInstance#VpnConnectionExamples
-
Configure a single VPN connection:
PS C:\> Set-VpnConnection -Name "Test1" -ServerAddress "10.1.1.2" -PassThru Name : Test1 ServerAddress : 10.1.1.2 AllUserConnection : False Guid : {4B308E9B-C225-42CB-8158-307193429591} TunnelType : Automatic AuthenticationMethod : {MsChapv2} EncryptionLevel : Required L2tpIPsecAuth : Certificate UseWinlogonCredential : False EapConfigXmlStream : ConnectionStatus : Disconnected NapState : NotConnected RememberCredential : False SplitTunneling : False
This command configures the VPN connection named Test1 to connect to the server with an IP address of 10.1.1.2. By specifying the PassThru parameter, you can see the configuration of the VPN connection object.
-
Configure a VPN connection with several settings:
PS C:\> Set-VpnConnection -Name "Test3" -AllUserConnection -TunnelType "L2tp" -EncryptionLevel "Optional" -AuthenticationMethod Pap -SplitTunneling $False -RememberCredential $False -PassThru WARNING: The currently selected encryption level requires EAP or MS-CHAPv2 logon security methods. Data encryption will not occur for Pap or Chap. Name : Test3 ServerAddress : 10.1.1.1 AllUserConnection : True Guid : {76746D4E-D72A-467D-A11F-3D4D9075F50D} TunnelType : L2tp AuthenticationMethod : {Pap} EncryptionLevel : Optional L2tpIPsecAuth : Certificate UseWinlogonCredential : False EapConfigXmlStream : ConnectionStatus : Disconnected NapState : NotConnected RememberCredential : False SplitTunneling : False
This command configures the VPN connection named Test3 and located in the global phone book as follows:
-- The connection is configured to use L2tp as the tunnel type, as specified by the TunnelType parameter -- The tunnel is using optional encryption, as specified by the EncryptionLevel parameter -- The authentication method used by the connection is PAP, as specified by the AuthenticationMethod parameter -- Split tunneling is turned off, as specified by the SplitTunneling parameter, and the value of $False -- Credential caching is turned off, as specified by the RememberCredential parameter and the value of $False
By specifying the PassThru parameter, you can see the configuration of the VPN connection object.
-
Configure a VPN connection to use a custom EAP configuration:
-
This command stores the result of New-EapConfiguration into the
variable named $A.:
PS C:\> $A = New-EapConfiguration -Tls
This command stores the result of New-EapConfiguration into the variable named $A.
-
This command configures the VPN connection named Test4 in the
global phone book to use the custom EAP configuration by: --
Specifying the AuthenticationMethod parameter with the value EAP
-- Specifying the EapConfigXmlStream parameter with the value of
the EapConfigXmlStream method of the previously created
variable.By specifying the PassThru parameter, you can see the
configuration of the VPN connection object:
PS C:\> Set-VpnConnection -Name "Test4" -AllUserConnection -AuthenticationMethod Eap -EapConfigXmlStream $A.EapConfigXmlStream -PassThru Name : Test4 ServerAddress : 10.1.1.1 AllUserConnection : True Guid : {1D423FF3-E3D4-404A-B052-DB9130656D29} TunnelType : L2tp AuthenticationMethod : {Eap} EncryptionLevel : Required L2tpIPsecAuth : Psk UseWinlogonCredential : False EapConfigXmlStream : #document ConnectionStatus : Disconnected NapState : NotConnected RememberCredential : True SplitTunneling : True
This set of commands first creates a custom EAP configuration, and then configures a VPN connection from the global phone book to use the new custom EAP configuration.
For more information about custom EAP creation, see the New-EapConfiguration cmdlet.
-
This command stores the result of New-EapConfiguration into the
variable named $A.:
This work is licensed under a Creative Commons Attribution 4.0 International. It is attributed to Microsoft Corporation and can be found here.
PowerShell Commands