Remove-DAClient
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
[-ComputerName <String>]
[-PassThru]
[-SecurityGroupNameList <String[]>]
[-DomainName <String[]>]
[-CimSession <CimSession[]>]
[-ThrottleLimit <Int32>]
[-AsJob]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-DAClient
[-ComputerName <String>]
[-PassThru]
[-DownlevelSecurityGroupNameList <String[]>]
[-EntrypointName <String>]
[-DownlevelDomainName <String[]>]
[-CimSession <CimSession[]>]
[-ThrottleLimit <Int32>]
[-AsJob]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
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.
Examples
Example 1: Remove an SG from DA deployment
PS C:\> Remove-DAClient -SecurityGroupNameList "corp.contoso.com\DirectAccessMobileClients"
This command 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.
Example 2: Display the deployment of a specific domain
PS C:\>Remove-DAClient -DomainName "child.corp.contoso.com"
This command 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.contoso.com domain. This cmdlet automatically locates the client GPO in the domain and removes it.
Example 3: Remove DirectAccess for client computers in a specific domain
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 :
This command removes DA for firstref_client_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.
Parameters
-AsJob
Runs the cmdlet as a background job. Use this parameter to run commands that take a long time to complete.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-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.
Type: | CimSession[] |
Aliases: | Session |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ComputerName
Specifies the IPv4 or IPv6 address, or host name, of the computer on which the Remote Access server computer specific tasks should be run.
Type: | String |
Aliases: | Cn |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
Prompts you for confirmation before running the cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DomainName
Specifies the list of domains in which client GPOs need to be removed.
A domain is specified in the DOMAIN
format.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-DownlevelDomainName
Specifies the list of domains in which client GPOs need to be removed.
A domain is specified in the DOMAIN
format.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-DownlevelSecurityGroupNameList
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.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-EntrypointName
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.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
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.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SecurityGroupNameList
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.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ThrottleLimit
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.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Inputs
String[]
Outputs
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 DAClient object contains the following properties:
- The list of client security groups present in the DA deployment.
- The list of client GPOs present in the DA deployment.
- The status of force tunnel.
- The NRPT object (for force tunnel properties).
- The status of the policy to deploy DA only on laptops and notebooks and not on all of the computers in the domain.
- The status of whether appropriate policies should be deployed on down-level clients (Windows® 7) to enable them to connect to the Windows Server 2012 DA Server. If multi-site is enabled, then the following additional properties are present:
- The name of the entry point (identity of a site) to which down-level clients are added.
- The name of the down-level client GPO.
- The list of security groups of down-level clients.