Cmdlets

Choose a cmdlet from the list on the left or search for a specific cmdlet. Choose a cmdlet from the list or search for a specific cmdlet.
About Help  Providers
 

Remove-DAClient

Remove-DAClient

ps_daclient_v1.0.0.cdxml

Synopsis

Removes one or more client computer security groups (SGs) from the DirectAccess (DA) deployment, removes one or more DA client Group Policy Objects (GPOs) from domains, removes one or more SGs of down-level clients (down-level clients can connect only to the specified site) from the DA deployment in a multi-site deployment, and removes one or more down-level DA client GPOs from domains in a multi-site deployment.

Syntax

Remove-DAClient [-AsJob] [-CimSession] [-ComputerName] [-DomainName] [-PassThru] [-SecurityGroupNameList] [-ThrottleLimit] [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-DAClient [-AsJob] [-CimSession] [-ComputerName] [-DownlevelDomainName] [-DownlevelSecurityGroupNameList] [-EntrypointName] [-PassThru] [-ThrottleLimit] [-Confirm] [-WhatIf] [<CommonParameters>]

Detailed Description

The Remove-DAClient cmdlet removes one or more client computer security groups (SGs) from the DirectAccess (DA) deployment, removes one or more DA client Group Policy Objects (GPOs) from domains, removes one or more SGs of down-level clients (down-level clients can connect only to the specified site) from the DA deployment in a multi-site deployment, and removes one or more down-level DA client GPOs from domains in a multi-site deployment.

The basic paradigm is that all client GPOs always point to all SGs even if the domains to which these GPOs belong are not represented in the SGs. There will never be a scenario where an SG is present only in some of the GPOs. If this happens, then the state of the configuration is bad. A user can remove client GPOs independent of the SGs and the domains these SGs represent. Every SG that is removed from the DA deployment is removed in all client GPOs currently present.

When this paradigm is extended to clients being removed from an SG we see that it is a pure SG level operation which can be accomplished using Active Directory (AD) cmdlets (such as Remove-ADGroupMember).

Although AD cmdlets are already available for the removal of SGs and GPOs, the additional capabilities of this cmdlet are justified as follows. -- When an SG is removed it is removed in all GPOs. If user does not have permissions to edit a GPO, then the SG is not removed from any of the domains. When using the AD cmdlet, the user would have to carefully ensure that it is run for each of the domains and it is difficult to handle the case where the user does not have permissions on some domains. -- When a GPO is removed all SGs in the GPO are removed and DA client specific policies are deleted. This cmdlet takes care of the conditions where the GPO is removed at the time of deletion. If the GPO was already present when adding it to the DA deployment, then only the DA related policies and settings are deleted and the GPO is left intact.

The following are additional behavior notes for the cmdlet. -- The user is not allowed to delete all client GPOs and SGs. At least one of each should be present always. -- Attempting to remove SGs in even a single GPO with the correct permissions results in the cmdlet terminating the processing of the entire list of SGs that were specified. However, This cmdlet still processes the list of domains that the user might have specified in the cmdlet. -- Attempting to create, remove, or configure a client GPO in one of the specified domains without the correct permissions will result in a non-terminating error for that domain but the cmdlet proceeds with the processing of the remaining domains.

Parameters

-AsJob <SwitchParameter>

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

-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

-ComputerName <String>

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

Aliases

Cn

Required?

false

Position

named

Default value

None

Accept pipeline input?

false

Accept wildcard characters?

false

-DomainName <String[]>

Specifies the list of domains in which client GPOs need to be removed. A domain is specified in the DOMAIN format.

Aliases

None

Required?

false

Position

named

Default value

None

Accept pipeline input?

True (ByPropertyName)

Accept wildcard characters?

false

-DownlevelDomainName <String[]>

Specifies the list of domains in which client GPOs need to be removed. A domain is specified in the DOMAIN format.

Aliases

None

Required?

false

Position

named

Default value

None

Accept pipeline input?

True (ByPropertyName)

Accept wildcard characters?

false

-DownlevelSecurityGroupNameList <String[]>

Specifies the names of one or more down-level client SGs that are part of the DA deployment which need to be removed. This parameter is specified in DOMAIN\SG_NAME format. These down-level clients can connect only to the site specified in the EntryPointName parameter.

Aliases

None

Required?

false

Position

named

Default value

None

Accept pipeline input?

True (ByPropertyName)

Accept wildcard characters?

false

-EntrypointName <String>

Specifies the identity of a site in a multi-site deployment from which down-level clients are removed (these clients can only connect to the specified site). If this parameter is not specified, then the site to which the computer on which the cmdlet is run is used (the ComputerName parameter may or may not be specified). If both this parameter and the ComputerName parameter are specified and the computer name does not belong to the site represented by the entry point name then this parameter takes precedence and the authentication type is configured for it.

Aliases

None

Required?

false

Position

named

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.

Aliases

None

Required?

false

Position

named

Default value

None

Accept pipeline input?

false

Accept wildcard characters?

false

-SecurityGroupNameList <String[]>

Specifies a list of client SGs that are part of the DA deployment which need to be removed. The name of the SG is in DOMAIN\SG_NAME format.

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

-Confirm <SwitchParameter>

Prompts you for confirmation before running the cmdlet.

Aliases

None

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.

Aliases

None

Required?

false

Position

named

Default value

false

Accept pipeline input?

false

Accept wildcard characters?

false

Input Type

None

Return Type

Microsoft.Management.Infrastructure.CimInstance#DAClient

Notes

None

Examples

EXAMPLE 1

This example removes the DirectAccessMobileClients SG from the DA deployment. The use of the cmdlet to restrict users and laptops in DirectAccessMobileClients SG from accessing the corporate resources of our Contoso firm is demonstrated here.

PS C:\> Remove-DAClient -SecurityGroupNameList 'corp.contoso.com\DirectAccessMobileClients'

EXAMPLE 2

This example displays the deployment that contains two domains viz.corp.contoso.com and child.corp.contoso.com and the cmdlet removes the DA client GPO in child.corp.cotoso.com domain. This cmdlet automatically locates the client GPO in the domain and removes it.

PS C:\>Remove-DAClient -DomainName "child.corp.contoso.com"

EXAMPLE 3

This example removes DA for Windows® 7 client computers present in domain named child.corp.contoso.com at site 2-Edge-Site. This is accomplished by removing the client SG DownlevelClients which contains the Windows 7 clients and the domain named child.corp.contoso.com.

PS C:\>Remove-DAClient -DownLevelSecurityGroupNameList 'child.corp.contoso.com\DownlevelClients' -DownlevelDomainName 'child.corp.contoso.com' -EntrypointName '2-Edge-Site' -PassThru
SecurityGroupNameList  : {corp.contoso.com\DirectAccessLaptopClients} 
GPOName    : {corp.contoso.com\DirectAccess Client Settings} 
OnlyRemoteComputers   : Disabled 
Downlevel    : Disabled 
ForceTunnelingStatus  : Disabled 
ForceTunnelingNrptSuffix  : 
EntrypointName   : 
DownlevelSecurityGroupNameList : 
DownlevelGpoName   : 

Online Version
Add-DAClient
Get-DAClient
Set-DAClient
Remove-ADGroupMember