Export (0) Print
Expand All
Expand Minimize

Add-VpnS2SInterface

Windows Server 2012 R2 and Windows 8.1

Updated: September 24, 2014

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

Add-VpnS2SInterface

Creates a site-to-site (S2S) interface with the specified parameters.

Syntax

Parameter Set: EncryptionType
Add-VpnS2SInterface [-Name] <String> [-Destination] <String[]> [[-RoutingDomain] <String> ] [-AdminStatus <Boolean> ] [-AsJob] [-AuthenticationMethod <String> ] [-Certificate <X509Certificate2> ] [-CimSession <CimSession[]> ] [-EapMethod <String> ] [-EnableQoS <EnableQoS> ] [-EncryptionType <String> ] [-IdleDisconnectSeconds <UInt32> ] [-InitiateConfigPayload <Boolean> ] [-InternalIPv4 <Boolean> ] [-InternalIPv6 <Boolean> ] [-IPv4Subnet <String[]> ] [-IPv4TriggerFilter <String[]> ] [-IPv4TriggerFilterAction <Action> ] [-IPv6Subnet <String[]> ] [-IPv6TriggerFilter <String[]> ] [-IPv6TriggerFilterAction <Action> ] [-NetworkOutageTimeSeconds <UInt32> ] [-NumberOfTries <UInt32> ] [-PassThru] [-Password <String> ] [-Persistent] [-PostConnectionIPv4Subnet <String[]> ] [-PostConnectionIPv6Subnet <String[]> ] [-PromoteAlternate <Boolean> ] [-Protocol <String> ] [-RadiusAttributeClass <String> ] [-ResponderAuthenticationMethod <String> ] [-RetryIntervalSeconds <UInt32> ] [-RxBandwidthKbps <UInt64> ] [-SADataSizeForRenegotiationKilobytes <UInt32> ] [-SALifeTimeSeconds <UInt32> ] [-SharedSecret <String> ] [-SourceIpAddress <String> ] [-ThrottleLimit <Int32> ] [-TxBandwidthKbps <UInt64> ] [-UserName <String> ] [-Confirm] [-WhatIf] [ <CommonParameters>]

Parameter Set: CustomPolicy
Add-VpnS2SInterface [-Name] <String> [-Destination] <String[]> [[-RoutingDomain] <String> ] -CustomPolicy [-AdminStatus <Boolean> ] [-AsJob] [-AuthenticationMethod <String> ] [-AuthenticationTransformConstants <AuthenticationTransformConstants> ] [-Certificate <X509Certificate2> ] [-CimSession <CimSession[]> ] [-CipherTransformConstants <CipherTransformConstants> ] [-DHGroup <DHGroup> ] [-EapMethod <String> ] [-EnableQoS <EnableQoS> ] [-EncryptionMethod <EncryptionMethod> ] [-IdleDisconnectSeconds <UInt32> ] [-InitiateConfigPayload <Boolean> ] [-IntegrityCheckMethod <IntegrityCheckMethod> ] [-InternalIPv4 <Boolean> ] [-InternalIPv6 <Boolean> ] [-IPv4Subnet <String[]> ] [-IPv4TriggerFilter <String[]> ] [-IPv4TriggerFilterAction <Action> ] [-IPv6Subnet <String[]> ] [-IPv6TriggerFilter <String[]> ] [-IPv6TriggerFilterAction <Action> ] [-NetworkOutageTimeSeconds <UInt32> ] [-NumberOfTries <UInt32> ] [-PassThru] [-Password <String> ] [-Persistent] [-PfsGroup <PfsGroup> ] [-PostConnectionIPv4Subnet <String[]> ] [-PostConnectionIPv6Subnet <String[]> ] [-PromoteAlternate <Boolean> ] [-Protocol <String> ] [-RadiusAttributeClass <String> ] [-ResponderAuthenticationMethod <String> ] [-RetryIntervalSeconds <UInt32> ] [-RxBandwidthKbps <UInt64> ] [-SADataSizeForRenegotiationKilobytes <UInt32> ] [-SALifeTimeSeconds <UInt32> ] [-SharedSecret <String> ] [-SourceIpAddress <String> ] [-ThrottleLimit <Int32> ] [-TxBandwidthKbps <UInt64> ] [-UserName <String> ] [-Confirm] [-WhatIf] [ <CommonParameters>]




Detailed Description

The Add-VpnS2SInterface cmdlet creates a site-to-site (S2S) interface with the specified parameters. Use the CustomPolicy parameter to customize IPsec settings. If the Protocol parameter is set to Automatic, then the only authentication method allowed is user name. If the AuthenticationMethod parameter is set to pre-shared key (PSK), then only one interface can be enabled per destination and the initiator and responder policies are governed by what is specified per interface. If the AuthenticationMethod parameter is set to user name or computer certificates (MachineCert), then only initiator policies are governed by what is specified per interface and responder policies are governed by what is specified on the server.

For incoming connections:
-- If the AuthenticationMethod parameter is set to PSK, the interface for which the destination IP matches the incoming IP is activated.
-- If the AuthenticationMethod parameter is set to user name, then the name of the interface that matches the user name is activated.
-- If the AuthenticationMethod parameter is set to certificates, then the name of the interface that matches the certificate subject name is activated.

Parameters

-AdminStatus<Boolean>

Specifies the administrator status of the cmdlet.


Aliases

none

Required?

false

Position?

named

Default Value

True

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 be used by the S2S connection.
If PSK is specified, then there can only be one active S2S VPN interface per destination IP address.


Aliases

none

Required?

false

Position?

named

Default Value

EAP

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-AuthenticationTransformConstants<AuthenticationTransformConstants>

Specifies a transform constant. The acceptable values for this parameter are: 

-- SHA256128
-- MD596
-- SHA196
-- GCMAES128
-- GCMAES192
-- GCMAES256


Aliases

FirstTransformType,AuthenticationTransformConstant

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-Certificate<X509Certificate2>

Specifies the certificate to be used in default store. Applicable only if AuthenticationMethod parameter is set to MachineCert.


Aliases

Cert

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

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

-CipherTransformConstants<CipherTransformConstants>

Specifies a cipher transform constant. The acceptable values for this parameter are: 

-- DES
-- DES3
-- AES128
-- AES192
-- AES256
-- GCMAES128
-- GCMAES192
-- GCMAES256


Aliases

OtherCipherAlgorithm,FirstCipherAlgorithm,CipherTransformConstant

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-CustomPolicy

Specifies the custom IKE IPsec policies.


Aliases

none

Required?

true

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-DHGroup<DHGroup>

Specifies the Diffie-Hellman (DH) group for the IPsec policy.


Aliases

none

Required?

false

Position?

named

Default Value

2

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-Destination<String[]>

Specifies the destination end point of the S2S connection.
Note: If the Certificate parameter is specified as PSK, then an IP address should be specified for this parameter as a fully qualified domain name (FQDN) will not work.


Aliases

RemoteTunnelEndpoint,RemoteTunnelHostname,RemoteAddress

Required?

true

Position?

3

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-EapMethod<String>

Specifies the EAP method if IkeLocalAuthenticationMethod is EAP.


Aliases

none

Required?

false

Position?

named

Default Value

MSCHAPv2

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-EnableQoS<EnableQoS>

Indicates whether to enable Quality of Service (QoS) on an interface.


Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-EncryptionMethod<EncryptionMethod>

Specifies the encryption method for the IKE policy.


Aliases

Encryption

Required?

false

Position?

named

Default Value

4

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-EncryptionType<String>

Specifies the type of encryption.


Aliases

none

Required?

false

Position?

named

Default Value

RequireEncryption

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-IdleDisconnectSeconds<UInt32>

Specifies the time interval, in seconds, after which an idle connection is disconnected. Unless you disable idle timeout, an idle connection is disconnected after this time interval is reached.


Aliases

IdleDurationSeconds,IdleDisconnectSec

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-InitiateConfigPayload<Boolean>

Indicates whether to initiate Config payload negotiation.


Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-IPv4Subnet<String[]>

Specifies the IPv4 subnet that is routed on this connection with metrics. You must specify the IPv4 subnet in the format of IPv4Address/SubnetPrefixLength:RouteMetric. For example: 192.168.1.0/24:1


Aliases

IPv4TriggerSubnet

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-IPv4TriggerFilter<String[]>

Specifies an array of IPv4 filters that trigger demand dial connections.


Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByValue, ByPropertyName)

Accept Wildcard Characters?

false

-IPv4TriggerFilterAction<Action>

Indicates whether a filter should trigger an S2S connection.


Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByValue, ByPropertyName)

Accept Wildcard Characters?

false

-IPv6Subnet<String[]>

Specifies the IPv6 subnet that is routed on this connection with metrics.


Aliases

IPv6TriggerSubnet

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-IPv6TriggerFilter<String[]>

Specifies an array of IPv6 filters that trigger demand dial connections.


Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByValue, ByPropertyName)

Accept Wildcard Characters?

false

-IPv6TriggerFilterAction<Action>

Indicates whether a filter should trigger an S2S connection.


Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByValue, ByPropertyName)

Accept Wildcard Characters?

false

-IntegrityCheckMethod<IntegrityCheckMethod>

Specifies the integrity method for the IPsec policy.


Aliases

OtherHashAlgorithm,FirstIntegrityAlgorithm

Required?

false

Position?

named

Default Value

2

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-InternalIPv4<Boolean>

Specifies that the IPv4 address should be negotiated.


Aliases

none

Required?

false

Position?

named

Default Value

True

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-InternalIPv6<Boolean>

Specifies that the IPv6 address should be negotiated.


Aliases

none

Required?

false

Position?

named

Default Value

True

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-Name<String>

Specifies the name of the connection.


Aliases

ElementName

Required?

true

Position?

2

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-NetworkOutageTimeSeconds<UInt32>

Specifies the maximum amount of time, in seconds, before a connection is disconnected due to a network outage.


Aliases

NetworkOutageTimeSec

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-NumberOfTries<UInt32>

Specifies the number of connection attempts.
If this parameter is specified as zero (0), then the connection is not retried if the first attempt fails.


Aliases

none

Required?

false

Position?

named

Default Value

3

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

-Password<String>

Specifies the password for the user name to be used for dialing the connection. Applicable only if AuthenticationMethod parameter is set to EAP.


Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-Persistent

Indicates that a connection is not disconnected due to inactivity.


Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-PfsGroup<PfsGroup>

Specifies the PFS group in the IPsec policy.


Aliases

PfsGroupId

Required?

false

Position?

named

Default Value

3

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-PostConnectionIPv4Subnet<String[]>

Specifies the IPv4 subnet routes that are added to a site-to-site interface after the connection is established. The values specified are not used to initiate the site-to-site VPN connection.


Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-PostConnectionIPv6Subnet<String[]>

Specifies the IPv6 subnet routes that are added to a site-to-site interface after the connection is established. The values specified are not used to initiate the site-to-site VPN connection.


Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-PromoteAlternate<Boolean>

Specifies an IP address that if successfully connected becomes the primary IP address, and the current primary IP address is moved to the alternate list.


Aliases

none

Required?

false

Position?

named

Default Value

False

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-Protocol<String>

Specifies the underlying protocol used for tunneling.


Aliases

KeyModule

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-RadiusAttributeClass<String>

Specifies a RADIUS attribute.


Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-ResponderAuthenticationMethod<String>

Specifies the authentication method to be used by the S2S initiator to validate the S2S responder.


Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-RetryIntervalSeconds<UInt32>

Specifies the time interval, in seconds, to wait between retries.


Aliases

RetryIntervalSec

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-RoutingDomain<String>

Specifies an ID, as a string, for a routing domain. The ID of a routing domain is a user-defined alphanumeric string.


Aliases

RoutingDomainName

Required?

false

Position?

4

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-RxBandwidthKbps<UInt64>

Specifies the receive bandwidth limit, in kilobits per second (Kbps).


Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-SADataSizeForRenegotiationKilobytes<UInt32>

Specifies the amount of data, in kilobytes (KB), that can be transferred using a security association (SA). When the limit is reached, the SA must be renegotiated.


Aliases

SaRenegotiationDataSizeKB,LifeTimeKiloBytes

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-SALifeTimeSeconds<UInt32>

Specifies the lifetime, in seconds, of a security association (SA). The SA is no longer valid after this time interval.


Aliases

SaLifeTimeSec,LifeTimeSeconds

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-SharedSecret<String>

Specifies the text of the shared secret to be used in the connection. This parameter is only applicable only if the AuthenticationMethod parameter is set to PSK or the ResponderAuthenticationMethod parameter is set to PSK.


Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-SourceIpAddress<String>

Specifies the source IPv4 or IPv6 addresses to use when dialing the connection.


Aliases

none

Required?

false

Position?

named

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

-TxBandwidthKbps<UInt64>

Specifies a transmit bandwidth limit, in Kbps, for the interface.


Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-UserName<String>

Specifies the user name to be used for the connection. Applicable only if AuthenticationMethod parameter is set to EAP.


Aliases

User

Required?

false

Position?

named

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.

  • None

Outputs

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

  • Microsoft.Management.Infrastructure.CimInstance#VpnS2SInterface

    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.


Examples

EXAMPLE 1

This example creates a S2S VPN interface named edge1 to the destination server 131.107.0.20. The protocol is IKEv2 and the authentication method is PSK. The string abc is used as PSK. Traffic to 10.2.0.0/24 and 2001:db8:2::/48 is sent over this interface if there is no other interface on the server that has same routes with a metric less than 100 . In case the interface is in disconnected state the connection is triggered if there is no other interface on the server that has same routes with a metric less than 100.


PS C:\> Add-VpnS2SInterface -Nameedge1 –Destination 131.107.0.20 -Protocol IKEv2 -AuthenticationMethod PSKOnly -SharedSecret abc -IPv4Subnet 10.2.0.0/24:100 -IPv6Subnet 2001:db8:2::/48:100

EXAMPLE 2

This example creates an interface that uses EAP authentication method and multiple subnets are routed on this interface including 131.0.1.0/24 and 121.0.0.0/16.


PS C:\> Add-VpnS2SInterface -IPv4Subnet @("131.0.1.0/24:254", "121.0.0.0/16:124") –UserName "abc@contoso.com" -Destination "30.0.0.1" -IPv6Subnet @("3ffe::/32:24", "2ffe::/32:24") -AuthenticationMethod "EAP" -Name "TestVpnS2SInterface" -RetryInterval 120 -EncryptionType "RequireEncryption" -InternalIPv4 1 -InternalIPv6 1 -NumberofTries 20 -AdminStatus $true -IdleDisconnectSeconds 300 -PromoteAlternate $true -Password "1111_aaaa" -PassThru
Name                 Destination          AdminStatus  ConnectionState IPv4Subnet 
----                 -----------          -----------  --------------- ---------- 
TestVpnS2SInterface  {30.0.0.1}           True         Disconnected    {131.0.1.0/24:254, 121.0.0.0/16:124} 

EXAMPLE 3

This example creates a S2S VPN interface using custom encryption settings.


PS C:\> Add-VpnS2SInterface -CustomPolicy -UserName "abc@contoso.com" -EncryptionMethod "AES128" -Destination "30.0.0.1" -Password "1111_aaaa" -DhGroup "Group2" -PfsGroup "PFS2" -CipherTransformConstants "AES128" -Name "TestVpnS2SInterface" -IntegrityCheckMethod "SHA256" -AuthenticationTransformConstants "SHA256128" -Protocol "IKEv2"

EXAMPLE 4

This example creates a S2S interface with authentication method of computer certificate and specifies the certificate for which the subject name is edge1.contoso.com.


 

PS C:\> $cert1 = Get-ChildItem -Path cert:LocalMachine\My | Where-Object –FilterScript { $_.Subject -Like "*CN=edge1.contoso.com*" }

 

PS C:\> Add-VpnS2SInterface –Name e1 -Destination 1.1.1.1 -AuthenticationMethod MachineCertificates -Certificate $cert1 -ResponderAuthenticationMethod MachineCertificates -Protocol IKEv2

Related topics

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft