Set-DAServer

Set-DAServer

Sets the properties specific to the DirectAccess (DA) server.

Syntax

Parameter Set: EnableComputerCertAuth
Set-DAServer [-AsJob] [-CimSession <CimSession[]> ] [-ClientIPv6Prefix <String> ] [-ComputerName <String> ] [-ConnectToAddress <String> ] [-EntrypointName <String> ] [-Force] [-HealthCheck <String> ] [-IntermediateRootCertificate] [-InternalIPv6Prefix <String[]> ] [-IPsecRootCertificate <X509Certificate2> ] [-PassThru] [-TeredoState <String> ] [-ThrottleLimit <Int32> ] [-UserAuthentication <String> ] [-Confirm] [-WhatIf] [ <CommonParameters>]

Parameter Set: ChangeDAInstallationType
Set-DAServer -DAInstallType <String> [-AsJob] [-CimSession <CimSession[]> ] [-ComputerName <String> ] [-Force] [-PassThru] [-ThrottleLimit <Int32> ] [-Confirm] [-WhatIf] [ <CommonParameters>]

Parameter Set: DisableComputerCertAuth
Set-DAServer -DisableComputerCertAuthentication [-AsJob] [-CimSession <CimSession[]> ] [-ClientIPv6Prefix <String> ] [-ComputerName <String> ] [-ConnectToAddress <String> ] [-Force] [-InternalIPv6Prefix <String[]> ] [-PassThru] [-TeredoState <String> ] [-ThrottleLimit <Int32> ] [-Confirm] [-WhatIf] [ <CommonParameters>]

Detailed Description

The Set-DAServer cmdlet sets the properties specific to the DirectAccess (DA) server.

The DA server properties that this cmdlet configures are of the following types.
-- Properties which are applicable globally to the entire DA deployment.
-- Properties which are applicable per-server, or per-cluster in a load balancing scenario, or per-site such as in a multi-site deployment.

Parameters

-AsJob

Aliases

none

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

-ClientIPv6Prefix<String>

Specifies the prefix from which IPv6 addresses are assigned to the connecting clients in case of IP-HTTPS. The length should be 64 bits. In the case of a load balancing scenario the prefix length should be 59 bits.
The client IPv6 prefix configuration is applicable per-server or per-site as in the case of multi-site deployments.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-ComputerName<String>

Specifies the IPv4 or IPv6 address, or host name, of the computer on which the DA server computer specific tasks should be run.

Aliases

Cn

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-ConnectToAddress<String>

Specifies the DA server or NAT public, if DA server is deployed behind a NAT, address to which clients connect. Specified as host name or IPv4 address.
When the ConnectTo address is changed, the SSL certificate is also changed appropriately. Following are the rules associated with assigning a proper certificate.
-- This cmdlet looks for an appropriate SSL certificate on the computer.
-- If an appropriate SSL certificate is not found, then a self-signed certificate is created.
-- In the case of external load balancer configuration, if one or more computers are down, then the cmdlet bails out and the ConnectTo Address is not changed.
-- In a load balancing scenario, if all computers are up and an appropriate SSL certificate is found only on some computers, then the cmdlet fails the operation of changing the ConnectTo address. If none of the computers has a proper SSL certificate, then a self-signed certificate is created on all computers and the ConnectTo change goes through. If one or more computers are down, then the certificate is updated only on the other computers. But the DA server GPO is updated to ensure that when these computers come up load balancing is in stopped state on them due to a certificate mismatch. For the certificate change, and as a result the ConnectTo address change, to take effect the administrator needs to install a similar certificate with the same name on the computers and re-run this cmdlet. If a self-signed certificate is being used, then the user just needs to re-run the cmdet and it automatically creates a self-signed certificate.
-- In a multi-site scenario, this cmdlet does not create a self-signed certificate and always expects a proper certificate to be present on the computer itself.
The ConnectTo address is applicable per-DA server or per-site, in the case of multi-site deployments.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-DAInstallType<String>

Changes the configuration in which DA has been deployed. The acceptable values for this parameter are:
-- FullInstall.
-- ManageOut.
This parameter is a global configuration and applies to the entire DA deployment.

Aliases

none

Required?

true

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-DisableComputerCertAuthentication

Specifies that computer certificate authentication is to be disabled. Disabling this setting disables PKI for the DA deployment.
Following are conditions for computer certificate authentication.
-- Computer certificate authentication cannot be disabled if health checks are enabled using the HealthCheck parameter or Two-factor authentication is used for user authentication or when multi-site deployment is enabled or when client support is enabled.
-- User authentication configuration is automatically changed to UserPasswd when computer certificate authentication is disabled.
Computer certificate authentication is re-enabled by configuring an IPsec root certificate using the IPsecRootCertificate parameter.
Disabling of computer certificate authentication is a global configuration that applies to the entire DA deployment.

Aliases

none

Required?

true

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-EntrypointName<String>

Specifies the identity of a site in a multi-site deployment and indicates that the DA server properties should be configured for that site. Only the following properties are applicable at the site level. The rest of the properties are global and therefore this parameter has no meaning to them.
-- ClientIPv6Prefix.
-- ConnectToAddress.
-- TeredoState.
If this parameter is not specified in a multi-site deployment, then the entry point name to which the server on which the cmdlet is run is used. The server could also be represented by using the ComputerName parameter.
If both this parameter and ComputerName parameter are specified and the computer name does not belong to the site represented by the entry point name, then the entry point takes precedence.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-Force

Forces the command to run without asking for user confirmation.
When suppressed the cmdlet assumes user confirmation for the following conditions.
-- ConnectTo change would result in a change in the SSL certificate.
-- During SSL certificate change if an appropriate certificate is not found then a self-signed certificate is created.
-- Changing DA installation type.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-HealthCheck<String>

Specifies that health checks for DA clients are enabled or disabled. The acceptable values for this parameter are:
-- Enabled.
-- Disabled.
The following are important behavioral aspects for health checks:
-- In order to enable health checks, computer certificate authentication should already be enabled, such as an IPsec root certificate should be deployed.
-- On disabling health checks, if neither of the following is already enabled, then computer certificate authentication is automatically disabled:
---- Multi-site, such as multi-site is not deployed or enabled.
---- User authentication is not two-factor.
---- Support for down-level clients is not enabled.
-- This parmater is a global configuration that applies to the entire DA deployment.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-IPsecRootCertificate<X509Certificate2>

Specifies the root certificate to which DA should chain. The acceptable values for this parameter are:
-- Change the IPsec root certificate.
-- Enable PKI if there is no IPsec root certificate already configured. However, this cmdlet configures the certificate only on the server on which this cmdlet finally runs.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByValue)

Accept Wildcard Characters?

false

-IntermediateRootCertificate

Specifies that the IPsec root certificate specified is an intermediate root certificate.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-InternalIPv6Prefix<String[]>

Represents the native IPv6 prefixes used in the internal network, in corporate network. The list of prefixes specified always overwrites the existing list of prefixes.
The list of internal IPv6 prefixes is a global configuration and applies to the entire DA deployment.

Aliases

none

Required?

false

Position?

named

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

-TeredoState<String>

Configures the state of Teredo. The acceptable values for this parameter are:
-- Enabled.
-- Disabled.
The following are the behavioral aspects of Teredo State.
-- Teredo can be enabled only if two consecutive Public IPv4 addresses are present on the Internet interface of the server.
-- In a load balancing scenario.
---- If a 3rd party load balancer is being used and Teredo has to be enabled, then the load balancer should have two consecutive IP addresses. Additionally each DA server that is part of the Load balancer must have 2 consecutive public IPv4 addresses.
---- Teredo can be enabled on a cluster if the cluster has VIPs that are two consecutive public IPv4 addresses. If such IPs are not found, then the cluster should be destroyed first and two consecutive IPs should be configured on the DA server.
-- The Teredo configuration is applicable per-computer or per-site, in the case of multi-site deployments.

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

-UserAuthentication<String>

Sets the type of authentication that is used to authenticate a DA user. The acceptable values for this parameter are:
-- TwoFactor.
-- UserPasswd.
Here two-factor refers to certificate authentication, OTP authentication, or smartcard based authentication. Note: To setup OTP authentication enabling two-factor alone is not enough. It needs to be configured separately using the DAOtpAuth cmdlets.
User authentication is a global configuration that applies to the entire DA deployment.

Aliases

none

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 (https://go.microsoft.com/fwlink/p/?LinkID=113216).

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#DAServer

    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 output object contains the following properties:
    -- Type of Direct Access installation: full or managed.
    -- Authentication type.
    -- Internal IPv6 prefix.
    -- Client IPHTTPS IPv6 prefix.
    -- Usage of computer certificate authorization for 1st tunnel: Enabled or Disabled.
    -- IPsec root certificate.
    -- Whether the IPsec root certificate is an intermediate root certificate.
    -- Status of Teredo: Enabled or Disabled.
    -- Whether the DA server is deployed behind NAT.
    -- Whether the configuration in which DA is deployed is a single or double network adapter.
    -- Name of the DA server GPO.
    -- Status of the health check.

Examples

EXAMPLE 1

This example, given a DA installation in a ManageOut mode, changes the DA configuration to FullInstall mode. This allows remote clients to connect to resources in the corporate network over the DA connection.

PS C:\> Set-DAServer -DAInstallType FullInstall -PassThru

This cmdlet prompts user to confirm if they really want to change DA configuration. On confirming the cmdlet completes the underlying modifications.

PS C:\> 

EXAMPLE 2

This example enables Two-factor user authentication which enables users to use certificates for DA. There are multiple steps involved in enabling Two-factor authentication. By default, PKI is disabled during DA installation and will need to be enabled. This is achieved by provisioning an IPsec root certificate on the DA server using this cmdlet. The enterprise needs to have a certification authority (CA) which will provision this certificate for all domain joint computers. The first two steps in this example list out the certificates present in the root certificate store of the server computer and pick an appropriate one. In this case it happens to be the 13th certificate in the list. Using this cmdlet, the certificate is then assigned as the IPsec root certificate to enable PKI and the UserAuthentication is specified to be two-factor.

PS C:\> $certs = Get-ChildItem –Path Cert:\LocalMachine\Root
PS C:\> $IPSecRootCert = $certs[13]
PS C:\> $IPSecRootCert
PS C:\> Set-DAServer -IPsecRootCertificate $IPsecRootCert -UserAuthentication "TwoFactor" -PassThru

EXAMPLE 3

This example enables clients to connect using Teredo. By default, Teredo is disabled unless two consecutive public IPv4 addresses are found on the internet facing interface of the server while installing DA. Before enabling Teredo, ensure that two consecutive public IP addresses are present.

PS C:\> Set-DAServer -TeredoState Enabled

EXAMPLE 4

This example changes the connectTo address of the DA Server. However, since the same address is used in IPHttps and VPN certificates, applying this changes the certificates used for both these technologies.

On running the cmdlet, the user is presented with a prompt to confirm the change to the ConnecToAddress parameter.

PS C:\> Set-DAServer -ConnectToAddress daserverNew.com

On accepting this prompt, the cmdlet tries to locate a certificate for the new connectTo address. In this case it is unable to locate one and tries to create a self-signed certificate.

PS C:\> 

Before creating one it asks for user confirmation through the second prompt.

PS C:\> 

Get-DAServer

Get-RemoteAccess

Get-ChildItem