|
| 1 | +--- |
| 2 | +description: Learn how to retrieve DNS over HTTPS (DoH) settings using the Get-DnsServerEncryptionProtocol cmdlet in Windows PowerShell for Windows Server 2025 and later. |
| 3 | +external help file: PS_DnsServerEncryptionProtocol_v1.0.0.cdxml-help.xml |
| 4 | +Module Name: DnsServer |
| 5 | +ms.date: 02/10/2026 |
| 6 | +online version: https://learn.microsoft.com/powershell/module/dnsserver/get-dnsserverencryptionprotocol?view=windowsserver2025-ps&wt.mc_id=ps-gethelp |
| 7 | +schema: 2.0.0 |
| 8 | +title: Get-DnsServerEncryptionProtocol |
| 9 | +--- |
| 10 | + |
| 11 | +# Get-DnsServerEncryptionProtocol |
| 12 | + |
| 13 | +## SYNOPSIS |
| 14 | +Retrieves DNS server encryption protocol settings for DNS over HTTPS (DoH) on Windows Server 2025 or later. |
| 15 | + |
| 16 | +## SYNTAX |
| 17 | + |
| 18 | +``` |
| 19 | +Get-DnsServerEncryptionProtocol [-ComputerName <String>] [-PassThru <Boolean>] [-CimSession <CimSession[]>] |
| 20 | + [-ThrottleLimit <Int32>] [-AsJob] [<CommonParameters>] |
| 21 | +``` |
| 22 | + |
| 23 | +## DESCRIPTION |
| 24 | + |
| 25 | +The `Get-DnsServerEncryptionProtocol` cmdlet can be used to verify the current DoH configuration |
| 26 | +on a DNS server. The cmdlet retrieves the current settings as an object with the properties |
| 27 | +**EnableDoh** and **UriTemplate** to indicate whether DoH is enabled and the configured URI |
| 28 | +templates for DNS queries over HTTPS. The cmdlet retrieves the persistent encryption protocol |
| 29 | +settings. Changes made using `Set-DnsServerEncryptionProtocol` require a DNS server restart to take |
| 30 | +effect before being retrieved. |
| 31 | + |
| 32 | +> [!IMPORTANT] |
| 33 | +> The `Get-DnsServerEncryptionProtocol` cmdlet is available on Windows Server 2025 or |
| 34 | +> later beginning with 2026-02 Security Update. |
| 35 | +
|
| 36 | +## EXAMPLES |
| 37 | + |
| 38 | +### Example 1: Retrieve encryption settings from local DNS server |
| 39 | + |
| 40 | +In this example, the command retrieves the current encryption settings from the local DNS server. |
| 41 | + |
| 42 | +```powershell |
| 43 | +Get-DnsServerEncryptionProtocol |
| 44 | +``` |
| 45 | + |
| 46 | +```Output |
| 47 | +EnableDoh : True |
| 48 | +UriTemplate : https://dnsserver.example.net/dns-query |
| 49 | +``` |
| 50 | + |
| 51 | +The output shows that DNS over HTTPS (DoH) is enabled with a configured URI template. |
| 52 | + |
| 53 | +### Example 2: Retrieve encryption settings from remote DNS server |
| 54 | + |
| 55 | +In this example, the command retrieves the encryption settings from a remote DNS server named |
| 56 | +"dns1.contoso.com". |
| 57 | + |
| 58 | +```powershell |
| 59 | +Get-DnsServerEncryptionProtocol -ComputerName "dns1.contoso.com" |
| 60 | +``` |
| 61 | + |
| 62 | +```Output |
| 63 | +EnableDoh : False |
| 64 | +UriTemplate : |
| 65 | +``` |
| 66 | + |
| 67 | +The output shows that DNS over HTTPS (DoH) is currently disabled for the specified remote DNS |
| 68 | +server. |
| 69 | + |
| 70 | +## PARAMETERS |
| 71 | + |
| 72 | +### -AsJob |
| 73 | + |
| 74 | +Runs the cmdlet as a background job. Use this parameter to run commands that take a long time to |
| 75 | +complete. |
| 76 | + |
| 77 | +The cmdlet immediately returns an object that represents the job and then displays the command |
| 78 | +prompt. You can continue to work in the session while the job completes. To manage the job, use the |
| 79 | +`*-Job` cmdlets. To get the job results, use the |
| 80 | +[Receive-Job](https://go.microsoft.com/fwlink/?LinkID=113372) cmdlet. |
| 81 | + |
| 82 | +For more information about Windows PowerShell background jobs, see |
| 83 | +[about_Jobs](https://go.microsoft.com/fwlink/?LinkID=113251). |
| 84 | + |
| 85 | +```yaml |
| 86 | +Type: SwitchParameter |
| 87 | +Parameter Sets: (All) |
| 88 | +Aliases: |
| 89 | + |
| 90 | +Required: False |
| 91 | +Position: Named |
| 92 | +Default value: None |
| 93 | +Accept pipeline input: False |
| 94 | +Accept wildcard characters: False |
| 95 | +``` |
| 96 | +
|
| 97 | +### -CimSession |
| 98 | +
|
| 99 | +Runs the cmdlet in a remote session or on a remote computer. Enter a computer name or a session |
| 100 | +object, such as the output of a [New-CimSession](https://go.microsoft.com/fwlink/p/?LinkId=227967) |
| 101 | +or [Get-CimSession](https://go.microsoft.com/fwlink/p/?LinkId=227966) cmdlet. The default is the |
| 102 | +current session on the local computer. |
| 103 | +
|
| 104 | +```yaml |
| 105 | +Type: CimSession[] |
| 106 | +Parameter Sets: (All) |
| 107 | +Aliases: Session |
| 108 | + |
| 109 | +Required: False |
| 110 | +Position: Named |
| 111 | +Default value: None |
| 112 | +Accept pipeline input: False |
| 113 | +Accept wildcard characters: False |
| 114 | +``` |
| 115 | +
|
| 116 | +### -ComputerName |
| 117 | +
|
| 118 | +Specifies a DNS server. The acceptable values for this parameter are: |
| 119 | +
|
| 120 | +- An IP V4 address |
| 121 | +- An IP V6 address |
| 122 | +- Any other value that resolves to an IP address, such as a fully qualified domain name (FQDN), host |
| 123 | + name, or NETBIOS name. |
| 124 | +
|
| 125 | +```yaml |
| 126 | +Type: String |
| 127 | +Parameter Sets: (All) |
| 128 | +Aliases: Cn |
| 129 | + |
| 130 | +Required: False |
| 131 | +Position: Named |
| 132 | +Default value: None |
| 133 | +Accept pipeline input: False |
| 134 | +Accept wildcard characters: False |
| 135 | +``` |
| 136 | +
|
| 137 | +### -PassThru |
| 138 | +
|
| 139 | +Returns an object representing the item with which you are working. |
| 140 | +
|
| 141 | +```yaml |
| 142 | +Type: Boolean |
| 143 | +Parameter Sets: (All) |
| 144 | +Aliases: |
| 145 | + |
| 146 | +Required: False |
| 147 | +Position: Named |
| 148 | +Default value: None |
| 149 | +Accept pipeline input: True (ByPropertyName) |
| 150 | +Accept wildcard characters: False |
| 151 | +``` |
| 152 | +
|
| 153 | +### -ThrottleLimit |
| 154 | +
|
| 155 | +Specifies the maximum number of concurrent operations that can be established to run the cmdlet. If |
| 156 | +this parameter is omitted or a value of `0` is entered, then Windows PowerShell calculates an |
| 157 | +optimum throttle limit for the cmdlet based on the number of CIM cmdlets that are running on the |
| 158 | +computer. The throttle limit applies only to the current cmdlet, not to the session or to the |
| 159 | +computer. |
| 160 | + |
| 161 | +```yaml |
| 162 | +Type: Int32 |
| 163 | +Parameter Sets: (All) |
| 164 | +Aliases: |
| 165 | +
|
| 166 | +Required: False |
| 167 | +Position: Named |
| 168 | +Default value: None |
| 169 | +Accept pipeline input: False |
| 170 | +Accept wildcard characters: False |
| 171 | +``` |
| 172 | + |
| 173 | +### CommonParameters |
| 174 | + |
| 175 | +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, |
| 176 | +-InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, |
| 177 | +-WarningAction, and -WarningVariable. For more information, see |
| 178 | +[about_CommonParameters](https://go.microsoft.com/fwlink/?LinkID=113216). |
| 179 | + |
| 180 | +## INPUTS |
| 181 | + |
| 182 | +### None |
| 183 | + |
| 184 | +You cannot pipe objects to this cmdlet. |
| 185 | + |
| 186 | +## OUTPUTS |
| 187 | + |
| 188 | +### Microsoft.Management.Infrastructure.CimInstance#DnsServerEncryptionProtocol |
| 189 | + |
| 190 | +This cmdlet returns a `DnsServerEncryptionProtocol` object that represents the updated encryption |
| 191 | +protocol settings on the DNS server. |
| 192 | + |
| 193 | +## NOTES |
| 194 | + |
| 195 | +## RELATED LINKS |
| 196 | + |
| 197 | +[Set-DnsServerEncryptionProtocol](./Set-DnsServerEncryptionProtocol.md) |
0 commit comments