Add-Dns Server Trust Anchor

Adds a trust anchor to a DNS server.

Syntax

Add-DnsServerTrustAnchor
   [-Name] <String>
   [-KeyProtocol <String>]
   -Base64Data <String>
   [-ComputerName <String>]
   [-CryptoAlgorithm] <String>
   [-PassThru]
   [-CimSession <CimSession[]>]
   [-ThrottleLimit <Int32>]
   [-AsJob]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-DnsServerTrustAnchor
   [-Name] <String>
   [-ComputerName <String>]
   [-CryptoAlgorithm] <String>
   [-PassThru]
   -KeyTag <UInt16>
   -DigestType <String>
   -Digest <String>
   [-CimSession <CimSession[]>]
   [-ThrottleLimit <Int32>]
   [-AsJob]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-DnsServerTrustAnchor
   [-ComputerName <String>]
   [-PassThru]
   [-Root]
   [-CimSession <CimSession[]>]
   [-ThrottleLimit <Int32>]
   [-AsJob]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

The Add-DnsServerTrustAnchor cmdlet adds a trust anchor (DNSKEY record or DS record) to a Domain Name System (DNS) server. If no trust anchor is present, the cmdlet creates one. If you specify the DigestType parameter, the cmdlet adds a trust anchor delegation signer (DS) record.

If you specify the Root parameter the cmdlet retrieves the trust anchors from the URL specified in RootTrustAnchorsURL property of the DNS server.

Examples

Example 1: Add a trust anchor to a DNS server

PS C:\> Get-DnsServerResourceRecord -ZoneName "sec.contoso.com" -RRType "dnskey" -ComputerName DNS1 | %{ $_.RecordData | Add-DnsServerTrustAnchor -PassThru -Verbose -Name "sec.contoso.com"}
VERBOSE: Adding trust anchor for trust point sec.contoso.com of type DNSKEY on server Server01. 
TrustAnchorName             TrustAnchorType      TrustAnchorState     TrustAnchorData
---------------              ---------------      ----------------     ---------------
sec.contoso.com             DNSKEY               Valid                [23600][DnsSec][RsaSha256][AwEAAbZvBTiMzoqK... 
VERBOSE: Adding trust anchor for trust point sec.contoso.com of type DNSKEY on server Server01. 
sec.contoso.com             DNSKEY               Valid                [53180][DnsSec][RsaSha256][AwEAAbsS7NnziyRY... 
VERBOSE: Adding trust anchor for trust point sec.contoso.com of type DNSKEY on server Server01. 

sec.contoso.com             DNSKEY               Valid                [50272][DnsSec][RsaSha256][AwEAAe1EkxNj6M1b... 
VERBOSE: Adding trust anchor for trust point sec.contoso.com of type DNSKEY on server Server01. 
sec.contoso.com             DNSKEY               Valid                [37436][DnsSec][RsaSha256][AwEAAa1PJyk2lITB... 
VERBOSE: Adding trust anchor for trust point sec.contoso.com of type DNSKEY on server Server01. 
sec.contoso.com             DNSKEY               Valid                [2895][DnsSec][RsaSha1NSec3][AwEAAbOk5nl41M... 
VERBOSE: Adding trust anchor for trust point sec.contoso.com of type DNSKEY on server Server01. 
sec.contoso.com             DNSKEY               Valid                [62250][DnsSec][RsaSha1NSec3][AwEAAci9Ayfjg... 
VERBOSE: Adding trust anchor for trust point sec.contoso.com of type DNSKEY on server Server01. 
sec.contoso.com             DNSKEY               Valid                [47244][DnsSec][RsaSha1NSec3][AwEAAcFv94ne6...

This command uses the Get-DnsServerResourceRecord cmdlet to obtain a DnsKey resource record from the DNS server DNS1 for the zone named sec.contoso.com. The command then uses the pipeline operator to send it to the Add-DnsServerTrustAnchor cmdlet to add a trust anchor to the current DNS server for this zone.

Example 2: Add a trust anchor from the RootTrustAnchorsURL property

PS C:\> Add-DnsServerTrustAnchor -Root

This command adds the trust anchors from the URL specified by the RootTrustAnchorsURL property of the DNS server.

Required Parameters

-Base64Data

Specifies key data.

Type: String
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False
-CryptoAlgorithm

Specifies the cryptographic algorithm that the cmdlet uses for key generation. The acceptable values for this parameter are:

  • RsaSha1
  • RsaSha256
  • RsaSha512
  • RsaSha1NSec3
  • ECDsaP256Sha256
  • ECDsaP384Sha384
Type: String
Parameter Sets: RsaSha1, RsaSha256, RsaSha512, RsaSha1NSec3, ECDsaP256Sha256, ECDsaP384Sha384
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False
-Digest

Specifies the DS digest data.

Type: String
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False
-DigestType

Specifies the type of algorithm that the zone signing key uses to create the DS record. Valid values are one or more of the following:

  • Sha1
  • Sha256
  • Sha384
Type: String
Parameter Sets: Sha1, Sha256, Sha384
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False
-KeyTag

Specifies the unique key tag that the DNS server uses to identify a key.

Type: UInt16
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False
-Name

Specifies the name of a trust anchor on a DNS server.

Type: String
Aliases: TrustAnchorName
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False
-Root

Indicates that the cmdlet adds the trust anchor of the root zone from the URL specified by the RootTrustAnchorsURL property of the DNS server.

Type: SwitchParameter
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Optional Parameters

-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 .

Type: SwitchParameter
Position: Named
Default value: None
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
Accept pipeline input: False
Accept wildcard characters: False
-ComputerName

Specifies a remote DNS server. The acceptable values for this parameter are:an IP address or any value that resolves to an IP address, such as a fully qualified domain name (FQDN), host name, or NETBIOS name.

Type: String
Aliases: Cn
Position: Named
Default value: None
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
Accept pipeline input: False
Accept wildcard characters: False
-KeyProtocol

Specifies the key protocol. The default is Dnssec.

Type: String
Parameter Sets: DnsSec
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.

Type: SwitchParameter
Position: Named
Default value: None
Accept pipeline input: False
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
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
Accept pipeline input: False
Accept wildcard characters: False

Outputs

Microsoft.Management.Infrastructure.CimInstance#DnsServerTrustAnchor

The DnsServerTrustAnchor object contains the following fields:

  • EnteredStateTime
  • KeyTag
  • NextStateTime
  • TrustAnchorData
  • TrustAnchorName
  • TrustAnchorState
  • TrustAnchorType