Set-KdsConfiguration

Set-KdsConfiguration

Sets the configuration of Microsoft Group Key Distribution Service (KdsSvc).

Syntax

Parameter Set: InputObject
Set-KdsConfiguration [-InputObject] <KdsServerConfiguration> [-LocalTestOnly] [-Confirm] [-WhatIf] [ <CommonParameters>]

Parameter Set: KdsConfiguration
Set-KdsConfiguration [-KdfAlgorithm <String> ] [-KdfParameters <Byte[]> ] [-LocalTestOnly] [-SecretAgreementAlgorithm <String> ] [-SecretAgreementParameters <Byte[]> ] [-SecretAgreementPrivateKeyLength <Int32> ] [-SecretAgreementPublicKeyLength <Int32> ] [-Confirm] [-WhatIf] [ <CommonParameters>]

Parameter Set: RevertToDefault
Set-KdsConfiguration -RevertToDefault [-LocalTestOnly] [-Confirm] [-WhatIf] [ <CommonParameters>]

Detailed Description

The Set-KdsConfiguration cmdlet sets the configuration of Microsoft Group Key Distribution Service (KdsSvc). This cmdlet sets the following configuration data:
-- The key derivation function algorithm and parameters used to generate private group keys
-- The secret agreement algorithm and parameters used to generate public group keys.

This cmdlet also validates input by performing key derivation function tests and secret agreement tests.

Parameters

-InputObject<KdsServerConfiguration>

Specifies the server configuration object that contains the configuration information of the Microsoft Group KdsSvc.

Aliases

none

Required?

true

Position?

1

Default Value

none

Accept Pipeline Input?

True (ByValue)

Accept Wildcard Characters?

false

-KdfAlgorithm<String>

Specifies the name of the key derivation function algorithm that the key distribution server uses to generate the keys.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-KdfParameters<Byte[]>

Specifies the parameters for the key derivation function used to generate the group private key. If this parameter is not specified or this parameter is set to $null, then no key derivation function parameters are needed.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-LocalTestOnly

Indicates that the cmdlet only validates the new group key distribution service configuration on the local computer, and does not store the key in Active Directory (AD).
If this parameter is specified, then the cmdlet returns a value that indicates whether the test passed.
If this parameter is not specified, then the cmdlet returns the new server configuration object.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-RevertToDefault

Indicates that the customized service configuration is reverted to the default configuration.

Aliases

none

Required?

true

Position?

named

Default Value

FALSE

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-SecretAgreementAlgorithm<String>

Specifies the name of the secret agreement algorithm used to generate a group public key.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-SecretAgreementParameters<Byte[]>

Specifies the parameters for the secret agreement algorithm. If this parameter is not specified or this parameter is set to $null, then no secret agreement algorithm parameters are needed.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-SecretAgreementPrivateKeyLength<Int32>

Specifies the length of the private key used in the secret agreement algorithm.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-SecretAgreementPublicKeyLength<Int32>

Specifies the length of the public key used in the secret agreement algorithm.

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.

  • Microsoft.KeyDistributionService.KdsServerConfiguration

    The KdsServerConfiguration object contains configuration information for the Microsoft Group KdsSvc.

Outputs

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

  • Microsoft.KeyDistributionService.KdsServerConfiguration
  • System.Boolean

Examples

Example 1: Set the configuration of Microsoft Group Key Distribution Service

This example retrieves a server configuration object in to a variable $config using the Get-KdsConfiguration cmdlet, and passes the contents of the variable to this cmdlet.

PS C:\> $config = Get-KdsConfiguration
PS C:\> Set-KdsConfiguration –InputObject $config

Example 2: Test the configuration on the local server

This example tests the local server configuration.

PS C:\> Set-KdsConfiguration -LocalTestOnly

Example 3: Set the key derivation function algorithm

This example sets the key derivation function (KDF) algorithm name to SHA-1. This algorithm generates a private group key.

PS C:\> Set-KdsConfiguration –KdfAlgorithm "SHA-1"

Example 4: Set the secret agreement algorithm

This example sets the secret agreement algorithm name to ECDH. This algorithm generates a public group key.

PS C:\> Set-KdsConfiguration –SecretAgreementAlgorithm "ECDH"

Example 5: Set the Group Key Distribution Service configuration to the default configuration

This example validates that the customized group key distribution service configurations are deleted and the SID key starts to use the default configuration.

PS C:\> Set-KdsConfiguration -RevertToDefault

Add-KdsRootKey

Clear-KdsCache

Get-KdsConfiguration

Get-KdsRootKey

Test-KdsRootKey