Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

Add-VpnConnection

Windows Server 2012 R2 and Windows 8.1

Updated: October 17, 2013

Applies To: Windows 8.1, Windows PowerShell 4.0, Windows Server 2012 R2

Add-VpnConnection

Adds a VPN connection to the Connection Manager phone book.

Syntax

Parameter Set: InboxProfile
Add-VpnConnection [-Name] <String> [-ServerAddress] <String> [[-TunnelType] <String> ] [[-EncryptionLevel] <String> ] [[-AuthenticationMethod] <String[]> ] [[-SplitTunneling]] [[-AllUserConnection]] [[-L2tpPsk] <String> ] [[-RememberCredential]] [[-UseWinlogonCredential]] [[-EapConfigXmlStream] <XmlDocument> ] [-AsJob] [-CimSession <CimSession[]> ] [-DnsSuffix <String> ] [-Force] [-IdleDisconnectSeconds <UInt32> ] [-MachineCertificateEKUFilter <String[]> ] [-MachineCertificateIssuerFilter <X509Certificate2> ] [-PassThru] [-ServerList <CimInstance[]> ] [-ThrottleLimit <Int32> ] [-Confirm] [-WhatIf] [ <CommonParameters>]

Parameter Set: ThirdParty
Add-VpnConnection [-Name] <String> [-ServerAddress] <String> [[-SplitTunneling]] [[-RememberCredential]] [-PlugInApplicationID] <String> -CustomConfiguration <XmlDocument> [-AsJob] [-CimSession <CimSession[]> ] [-DnsSuffix <String> ] [-Force] [-IdleDisconnectSeconds <UInt32> ] [-PassThru] [-ServerList <CimInstance[]> ] [-ThrottleLimit <Int32> ] [-Confirm] [-WhatIf] [ <CommonParameters>]




Detailed Description

The Add-VpnConnection cmdlet adds a VPN connection with the specified parameters to the Connection Manager phone book. If errors occur when you create the VPN profile, the cmdlet returns the error information.

Parameters

-AllUserConnection

Indicates that the cmldet adds the VPN connection to the global phone book entries.


Aliases

none

Required?

false

Position?

8

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-AsJob

Runs the cmdlet as a background job. Use this parameter to run commands that take a long time to complete. The cmdlet immediately returns an object that represents the job and then displays the command prompt. You can continue to work in the session while the job completes. To manage the job, use the *-Job cmdlets. To get the job results, use the Receive-Job cmdlet. For more information about Windows PowerShell® background jobs, see about_Jobs.


Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-AuthenticationMethod<String[]>

Specifies the authentication method to use for the VPN connection. The acceptable values for this parameter are: PAP, CHAP, MSCHAPv2, or EAP.


Aliases

none

Required?

false

Position?

6

Default Value

MSChapv2

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-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.


Aliases

Session

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-CustomConfiguration<XmlDocument>

Specifies an XML document that allows vendors to specify custom configuration information.


Aliases

none

Required?

true

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-DnsSuffix<String>

Specifies the DNS suffix of the VPN connection.


Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-EapConfigXmlStream<XmlDocument>

Specifies the contents of the EAP XML configuration file, which includes the EAP method ID.


Aliases

none

Required?

false

Position?

12

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-EncryptionLevel<String>

Specifies the encryption level for the VPN connection. The acceptable values for this parameter are: NoEncryption, Optional, Required and Maximum.


Aliases

none

Required?

false

Position?

5

Default Value

Required

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-Force

Indicates that the pre-shared key (PSK) value is supplied over an insecure channel, if L2TP is used.


Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-IdleDisconnectSeconds<UInt32>

Specifies the time, in seconds, before an idle connection is closed.


Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-L2tpPsk<String>

Specifies the value of the PSK to be used for L2TP authentication. If this parameter is not specified, a certificate is used for L2TP.


Aliases

none

Required?

false

Position?

9

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-MachineCertificateEKUFilter<String[]>

Specifies an array of enhanced key usage (EKU) filters for Internet Key Exchange version 2 (IKEv2) machine certificate selection.


Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-MachineCertificateIssuerFilter<X509Certificate2>

Specifies the X509 certificate of the issuer filter for IKEv2 machine certificate selection.


Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-Name<String>

Specifies the name of this VPN connection profile.


Aliases

ConnectionName

Required?

true

Position?

2

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-PassThru

Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output.


Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-PlugInApplicationID<String>

Specifies the identifier for a third party application.


Aliases

none

Required?

true

Position?

11

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-RememberCredential

Indicates that the credentials supplied at the time of first successful connection are stored in the cache.


Aliases

none

Required?

false

Position?

10

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-ServerAddress<String>

Specifies the address of the remote VPN server to which the client connects. You can specify the address as a URL, an IPv4 address, or an IPv6 address.


Aliases

ServerName,DefaultServer

Required?

true

Position?

3

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-ServerList<CimInstance[]>

Specifies an array of VPN servers. The VPN client can connect to these servers.


Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-SplitTunneling

Indicates that the cmdlet enables split tunneling for this VPN connection profile. When you enable split tunneling, traffic to destinations outside the intranet does not flow through the VPN tunnel. If you do not specify this parameter, split tunneling is disabled.


Aliases

none

Required?

false

Position?

7

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-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 PowerShell® 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.


Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-TunnelType<String>

Specifies the type of tunnel used for the VPN connection. The acceptable values for this parameter are: PPTP, L2TP, SSTP, IKEv2, or Automatic.


Aliases

none

Required?

false

Position?

4

Default Value

Automatic

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-UseWinlogonCredential

Indicates that MSCHAPv2 or EAP MSCHAPv2 is used as the authentication method, and that Windows logon credentials are used automatically when connecting with this VPN connection profile.


Aliases

none

Required?

false

Position?

11

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-Confirm

Prompts you for confirmation before running the cmdlet.


Required?

false

Position?

named

Default Value

false

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-WhatIf

Shows what would happen if the cmdlet runs. The cmdlet is not run.


Required?

false

Position?

named

Default Value

false

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

<CommonParameters>

This cmdlet supports the common parameters: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, and -OutVariable. For more information, see    about_CommonParameters.

Inputs

The input type is the type of the objects that you can pipe to the cmdlet.

Outputs

The output type is the type of the objects that the cmdlet emits.

  • Microsoft.Management.Infrastructure.CimInstance#VpnConnection

    The Microsoft.Management.Infrastructure.CimInstance object is a wrapper class that displays Windows Management Instrumentation (WMI) objects. The path after the pound sign (#) provides the namespace and class name for the underlying WMI object.
    The VpnConnection object contains the VpnConnection configuration settings.


Examples

Example 1: Add a VPN connection

This command adds a VPN connection named Test1 to the server with an IP address 10.1.1.1. By specifying the Passthru parameter, you can see the configuration of the VPN connection object.


PS C:\> Add-VpnConnection -Name "Test1" -ServerAddress "10.1.1.1" -PassThru
Name                  : Test1
ServerAddress         : 10.1.1.1
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 

Example 2: Add a VPN connection with an alternate authentication method

This command adds a VPN connection named Test3 to the server with an IP address 10.1.1.1. This connection uses the MSCHAPv2 authentication method, as specified by the AuthenticationMethod parameter. Additional parameters specify that the connection:

-- Uses the Windows logon credentials (the UseWinlogonCredential parameter)
-- Uses split tunneling (the SplitTunneling parameter)
-- Is stored in the global phone book (the AllUserConnection parameter)
-- Caches the credentials used for the first successful connection (the RememberCredential parameter)

By specifying the Passthru parameter, you can see the configuration of the VPN connection object.


PS C:\> Add-VpnConnection -Name "Test3" -ServerAddress "10.1.1.1" -TunnelType Pptp -EncryptionLevel Required -AuthenticationMethod MSChapv2 -UseWinlogonCredential -SplitTunneling -AllUserConnection  -RememberCredential -PassThru
Name                  : Test3 
ServerAddress         : 10.1.1.1 
AllUserConnection     : True 
Guid                  : {76746D4E-D72A-467D-A11F-3D4D9075F50D} 
TunnelType            : Pptp 
AuthenticationMethod  : {MsChapv2} 
EncryptionLevel       : Required 
L2tpIPsecAuth         : 
UseWinlogonCredential : True 
EapConfigXmlStream    : 
ConnectionStatus      : Disconnected 
NapState              : NotConnected 
RememberCredential    : True 
SplitTunneling        : True 

Example 3: Add a VPN connection that uses EAP authentication

This command adds a VPN connection named Test4 to the server with an IP address of 10.1.1.1. This connection uses the default EAP authentication method, as specified by the AuthenticationMethod parameter. The pre-shared key for the connection is specified by the L2tpPsk parameter Additional parameters specify that the connection:

-- Uses split tunneling (the SplitTunneling parameter)
-- Is stored in the global phone book (the AllUserConnection parameter)
-- Caches the credentials used for the first successful connection (the RememberCredential parameter)

By specifying the Passthru parameter, you can see the configuration of the VPN connection object.


PS C:\> Add-VpnConnection -Name "Test4" -ServerAddress "10.1.1.1" -TunnelType L2tp -EncryptionLevel Required -AuthenticationMethod Eap -SplitTunneling -AllUserConnection -L2tpPsk "password" -Force -RememberCredential -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 

Example 4: Add a VPN connection that uses a custom EAP authentication method

This set of commands adds a VPN connection using a custom EAP authentication method. For more information about custom EAP authentication methods, see the New-EapConfiguration cmdlet.


 

This command stores the result of the New-EapConfiguration cmdlet into the variable named $A.


PS C:\> $A = New-EapConfiguration

 

This command adds a new VPN connection named Test5 to the server with an IP address of 10.1.1.1. This connection is configured to use the custom EAP authentication method specifying the EapConfigXmlStream parameter, and using the EapConfigXmlStream method of the $A variable created earlier. Additional parameters specify that the connection:

-- Uses split tunneling (the SplitTunneling parameter)
-- Is stored in the global phone book (the AllUserConnection parameter)
-- Caches the credentials used for the first successful connection (the RememberCredential parameter)

By specifying the Passthru parameter, you can see the configuration of the VPN connection object.


PS C:\> Add-VpnConnection -Name "Test5" -ServerAddress "10.1.1.1" -TunnelType L2tp -EncryptionLevel Required -AuthenticationMethod Eap -SplitTunneling -AllUserConnection -RememberCredential -EapConfigXmlStream $A.EapConfigXmlStream -PassThru
Name                  : Test5 
ServerAddress         : 10.1.1.1 
AllUserConnection     : True 
Guid                  : {CF9F624F-D7DF-48BA-BD4B-D4E34AE05148} 
TunnelType            : L2tp 
AuthenticationMethod  : {Eap} 
EncryptionLevel       : Required 
L2tpIPsecAuth         : Certificate 
UseWinlogonCredential : False 
EapConfigXmlStream    : #document 
ConnectionStatus      : Disconnected 
NapState              : NotConnected 
RememberCredential    : True 
SplitTunneling        : True 

Related topics

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.