< Back

Add-VpnConnection

Wed Jan 30, 2019 6:05 pm

NAME Add-VpnConnection



SYNOPSIS

Adds a VPN connection to the Connection Manager phone book.





SYNTAX

Add-VpnConnection [[-RememberCredential]] [[-UseWinlogonCredential]] [[-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]] [[-AllUserConnection]] [[-L2tpPsk] <String>]

[-CimSession <CimSession[]>] [-DnsSuffix <String>] [-Force] [-IdleDisconnectSeconds <UInt32>] [-MachineCertificateEKUFilter <String[]>]

[-MachineCertificateIssuerFilter <X509Certificate2>] [-PassThru] [-ServerList <CimInstance[]>] [-ThrottleLimit <Int32>] [-Confirm] [-WhatIf]

[<CommonParameters>]



Add-VpnConnection [[-RememberCredential]] [-PlugInApplicationID] <String> [-Name] <String> [-ServerAddress] <String> [[-SplitTunneling]] [-CimSession

<CimSession[]>] [-DnsSuffix <String>] [-Force] [-IdleDisconnectSeconds <UInt32>] [-PassThru] [-ServerList <CimInstance[]>] [-ThrottleLimit <Int32>]

-CustomConfiguration <XmlDocument> [-Confirm] [-WhatIf] [<CommonParameters>]





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 [<SwitchParameter>]

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



Required? false

Position? 8

Default value none

Accept pipeline input? True (ByPropertyName)

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

-- EAP



Required? false

Position? 6

Default value none

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.



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.



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.



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.



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

-- Maximum



Required? false

Position? 5

Default value none

Accept pipeline input? True (ByPropertyName)

Accept wildcard characters? false



-Force [<SwitchParameter>]

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



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.



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.



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.



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.



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.



Required? true

Position? 2

Default value none

Accept pipeline input? True (ByPropertyName)

Accept wildcard characters? false



-PassThru [<SwitchParameter>]

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



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.



Required? true

Position? 11

Default value none

Accept pipeline input? True (ByPropertyName)

Accept wildcard characters? false



-RememberCredential [<SwitchParameter>]

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



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.



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.



Required? false

Position? named

Default value none

Accept pipeline input? True (ByPropertyName)

Accept wildcard characters? false



-SplitTunneling [<SwitchParameter>]

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.



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.



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

-- Automatic



Required? false

Position? 4

Default value none

Accept pipeline input? True (ByPropertyName)

Accept wildcard characters? false



-UseWinlogonCredential [<SwitchParameter>]

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.



Required? false

Position? 11

Default value none

Accept pipeline input? True (ByPropertyName)

Accept wildcard characters? false



-Confirm [<SwitchParameter>]

Prompts you for confirmation before running the cmdlet.Prompts you for confirmation before running the cmdlet.



Required? false

Position? named

Default value false

Accept pipeline input? false

Accept wildcard characters? false



-WhatIf [<SwitchParameter>]

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.



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, WarningAction, WarningVariable,

OutBuffer, PipelineVariable, and OutVariable. For more information, see

about_CommonParameters (https:/go.microsoft.com/fwlink/?LinkID=113216).



INPUTS











OUTPUTS

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.



This cmdlet returns a VpnConnection object that contains the VPN connection configuration settings.





Example 1: Add a VPN connection



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



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.





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



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



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.





Example 3: Add a VPN connection that uses EAP authentication



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



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.





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



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

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



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.







RELATED LINKS

Get-VpnConnection

Set-VpnConnection

Remove-VpnConnection

New-EapConfiguration