Change log for DnsServerDsc
January 18, 2026 ยท View on GitHub
The format is based on and uses the types of changes according to Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
[3.0.3] - 2026-01-18
Added
- build.yml
- Added config for merge task.
Changed
- Pipelines
- Used matrix strategy to test OSes.
- Integration tests
- Updated file name casing.
Fixed
- Tests
- Remove use of -TestCases and replace with -ForEach.
- Update tests for class-based resources which use DscResource.Base.
- DnsServerCache
- Cast properties which were timestamps to strings.
- DnsServerDsSetting
- Cast properties which were timestamps to strings.
- DnsServerEDns
- Cast properties which were timestamps to strings.
- DnsServerScavenging
- Cast properties which were timestamps to strings.
- Some integration test files were in Tests not tests.
- README
- Updated PowerShell Gallery Preview badge.
Removed
- Ensure Enum
- This is provided by DscResource.Base.
- build.psd1
[3.0.2] - 2025-12-05
Added
- DnsServerDsc
- Added new resource
- DnsRecordTxt - resource to manage DNS TXT records (issue #150).
- DnsRecordTxtScoped - resource to manage DNS TXT records (issue #296).
- Added new resource
Fixed
- DnsServerSetting
- Set-TargetResource was not correctly retrieving current settings from remote computers.
- Updated comment-based help for various settings to include allowed values in decimal.
Changed
- DnsServerSetting
- Allow MaximumUdpPacketSize to be read/write. Fixes issue #307.
- Add input validation to RemoteIPv4RankBoost, RemoteIPv6RankBoost, MaximumRodcRsoQueueLength, MaximumRodcRsoAttemptsPerCycle, TcpReceivePacketSize, MaximumUdpPacketSize.
[3.0.1] - 2025-08-28
Changed
- DnsServerDsc
- Changed the issue template for reporting a problem with a resource to use the new GitHub issue forms template.
- Changed the issue template for proposing a new resource to use the new GitHub issue forms template.
- Replaced the private function
ConvertTo-HashTableFromObjectwith the public functionConvertFrom-DscResourceInstance(from DscResource.Common). - Updated wiki start page with deprecation notice.
- Updated issue template for proposing a new resource.
- Removed left-over debug code.
- Update to use the build worker
windows-latestfor the necessary stages of the pipeline, andubuntu-latestfor the other stages. - Update pipeline to use GitVersion.Tool installed by
dotnet. - Pin
gitversionversion inazure-pipelines - Update unit and integration tests to Pester 5
- DnsServer* Class Resources
- Used
DscResource.Base - BREAKING: Added
Reasonsproperty as population of this is builtin to base class.
- Used
- Updated
prefix,build,RequiredModulesfor Pester 5 and DscResource.Base usage. - Added tests for
DSC_DnsServerSecondaryZone. - Updated project related files
.github/ISSUE_TEMPLATES.vscodeResolveDependency.ps1build.ps1
- Change from using
Test-DnsDscParameterStatetoTest-DscParameterState(from DscResource.Common). Fixes [Issue #121]. Affected resources:DSC_DnsServerDiagnosticsDSC_DnsServerRootHint
- DnsServerDsc.Common
- Added unit tests for
Convert-RootHintsToHashtable.
- Added unit tests for
- Revert to DscResource.Test 0.16.3.
Fixed
- DnsRecordBase
- Update comment regarding use of
using modulestatement.
- Update comment regarding use of
- ResourceBase
- Update comment regarding use of
using modulestatement.
- Update comment regarding use of
- build.yaml
- Replace
Generate_Wiki_ContentwithGenerate_Markdown_For_DSC_Resourcesto remove warning.
- Replace
- DSC_DnsServerADZone
- Use
New-ArgumentExceptioninstead ofNew-InvalidArgumentException.
- Use
- DSC_DnsServerClientSubnet
- Fixed wrong SYNAPSIS.
- DnsRecordCname
- Fixed bug with dot at the end [Issue #266].
- DnsRecordA
- Fixed [Issue #281].
- Pester tests
- Fixed issue with local testing on systems with non en-US Culture in DSC_DnsServerRootHint unit test. It fixes [Issue #283].
- Fixed a typo in stream suppression causing Error stream to be suppressed when it was supposed not to be (issue #274).
- Fixed Unit test for DSC_DnsRecordPtr DSC resource. -ErrorMassage changed to -ErrorId 'InvalidCastParseTargetInvocation'.
- Styling
- The use of Write-* cmdlets has been standardized to a consistent style with named parameters (-Message, -Object, etc).
- *.tests.ps1 reindexed as *.Tests.ps1 for consistency.
Removed
- DnsServerDsc.Common
- Removed unit tests for functions no longer part of the module.
- Removed functions from the module manifest that are no longer part of the module.
- Unused function ConvertTo-FollowRfc1034 removed with corresponding tests.
- Function Convert-RootHintsToHashtable moved to DSC_DnsServerRootHint.psm1
- Unit test for Convert-RootHintsToHashtable moved from DnsServerDsc.Commom.Tests.ps1 to DSC_DnsServerRootHint.Tests.ps1.
- Removed importing of DnsServerDsc.Common module from all resources.
- Removed Modules directory from CopyPaths: block in build.yaml
- DnsServerDsc.Common module complitely removed (issue #282).
- DnsServerDsc
- Removed
001.ResourceBaseand replaced withDscResource.Base. - Removed
Get-ClassNameandGet-LocalizedDataRecursiveutilizing ones provided inDscResource.Base.
- Removed
- DnsServerDsc.Common
- Removed
Test-DnsDscParameterStateand associated localization entries.
- Removed
[3.0.0] - 2021-05-26
Removed
- xDnsRecord
- BREAKING CHANGE: The resource has been replaced by DnsServerA, DnsServerPtr, and DnsServerCName (issue #221).
- xDnsServerMx
- BREAKING CHANGE: The resource has been replaced by DnsServerMx (issue #228).
- DnsServerSetting
- BREAKING CHANGE: The properties
ForwardersandForwardingTimeouthas been removed (issue #192). Use the resource DnsServerForwarder to enforce these properties. - BREAKING CHANGE: The properties
EnableEDnsProbesandEDnsCacheTimeouthas been removed (issue #195). Use the resource DnsServerEDns to enforce these properties. - BREAKING CHANGE: The properties
SecureResponses,MaxCacheTTL, andMaxNegativeCacheTTLhas been removed (issue #197). To enforce theses properties, use resource DnsServerEDns using the propertiesEnablePollutionProtection,MaxTtl, andMaxNegativeTtlrespectively. - BREAKING CHANGE: The properties
DefaultAgingState,ScavengingInterval,DefaultNoRefreshInterval, andDefaultRefreshIntervalhave been removed. Use the resource DnsServerScavenging to enforce this properties (issue #193). - BREAKING CHANGE: The properties
NoRecursion,RecursionRetry, andRecursionTimeouthas been removed (issue #200). To enforce theses properties, use resource DnsServerRecursion using the propertiesEnable,RetryInterval, andTimeoutrespectively. - BREAKING CHANGE: A few properties that are not supported by any DNS Server PowerShell cmdlet was moved to the new resource DnsServerSettingLegacy.
- BREAKING CHANGE: The properties
DsPollingIntervalandDsTombstoneIntervalhas been removed (issue #252). Use the resource DnsServerDsSetting to enforce these properties.
- BREAKING CHANGE: The properties
- ResourceBase
- For the method
Get()the overload that took a[Microsoft.Management.Infrastructure.CimInstance]was removed as it is not the correct pattern going forward.
- For the method
Added
- DnsServerDsc
- Added new resource
- DnsServerCache - resource to enforce cache settings (issue #196).
- DnsServerRecursion - resource to enforce recursion settings (issue #198).
- Added new private function
Get-ClassNamethat returns the class name or optionally an array with the class name and all inherited base class named. - Added new private function
Get-LocalizedDataRecursivethat gathers all localization strings from an array of class names. This can be used in classes to be able to inherit localization strings from one or more base class. If a localization string key exist in a parent class's localization string file it will override the localization string key in any base class. - Fixed code coverage in the pipeline (issue #246).
- Added new resource
- ResourceBase
- Added new method
Assert()that callsAssert-ModuleandAssertProperties().
- Added new method
- DnsRecordNs
- Added new resource to manage NS records
- DnsRecordNsScoped
- Added new resource to manage scoped NS records
- DnsServerDsSetting
- Added new resource to manage AD-integrated DNS settings
- DnsServerSettingLegacy
- A new resource to manage legacy DNS Server settings that are not supported by any DNS Server PowerShell cmdlet.
Changed
- DnsServerDsc
- BREAKING CHANGE: Renamed the module to DnsServerDsc (issue #179).
- BREAKING CHANGE: Removed the prefix 'x' from all MOF-based resources (issue #179).
- Renamed a MOF-based resource to use the prefix 'DSC' (issue #225).
- Fix stub
Get-DnsServerResourceRecordso it throws if it is not mocked correctly (issue #204). - Switch the order in the deploy pipeline so that creating the GitHub release is made after a successful release.
- Updated stub functions to throw if they are used (when missing a mock in unit test) (issue #235).
- ResourceBase
- Added support for inherit localization strings and also able to override a localization string that exist in a base class.
- Moved more logic from the resources into the base class for the method
Test(),Get(), andSet(). The base class now have three methodsAssertProperties(),Modify(), andGetCurrentState()where the two latter ones must be overridden by a resource if calling the base methodsSet()andGet(). - Moved the
Assert-Modulefrom the constructor to a new methodAssert()that is called fromGet(),Test(), andSet(). The methodAssert()also calls the methodAssertProperties(). The methodAssert()is not meant to be overridden, but can if there is a reason not to runAssert-Moduleand orAssertProperties().
- Integration tests
- Added commands in the DnsRecord* integration tests to wait for the LCM before moving to the next test.
- DnsServerCache
- Moved to the same coding pattern as DnsServerRecursion.
- DnsServerEDns
- Moved to the same coding pattern as DnsServerRecursion.
- DnsServerScavenging
- Moved to the same coding pattern as DnsServerRecursion.
- DnsServerSetting
- Changed to use
Get-DnsServerSettingandSet-DnsServerSetting(issue #185). - BREAKING CHANGE: The property
DisableAutoReverseZoneshave been renamed toDisableAutoReverseZone. - BREAKING CHANGE: The property
ListenAddresseshave been renamed toListeningIPAddress. - BREAKING CHANGE: The property
AllowUpdatewas changed to a boolean value ($trueor$false) since that is what the cmdletSet-DnsServerSettingis expecting (related to issue #101). - BREAKING CHANGE: The property
EnableDnsSecwas changed to a boolean value ($trueor$false) since that is what the cmdletSet-DnsServerSettingis expecting. - BREAKING CHANGE: The property
ForwardDelegationswas changed to a boolean value ($trueor$false) since that is what the cmdletSet-DnsServerSettingis expecting.
- Changed to use
Fixed
- Logic bug in DnsRecordPtr.expandIPv6String($string) (#255)
- Supporting tests added
[2.0.0] - 2021-03-26
Deprecated
- The module xDnsServer will be renamed DnsServerDsc. Version
2.0.0will be the the last release of xDnsServer. Version3.0.0will be release as DnsServerDsc, it will be released shortly after the2.0.0release (issue #179). The prefix 'x' will be removed from all resources in DnsServerDsc. - xDnsRecord will be removed in the next release (of DnsServerDsc) (issue #220). Start migrate to the resources DnsRecord*.
- xDnsRecordMx will be removed in the next release (of DnsServerDsc) (issue #228). Start migrate to the resources DnsRecordMx.
- The properties
DefaultAgingState,ScavengingInterval,DefaultNoRefreshInterval, andDefaultRefreshIntervalwill be removed from the resource xDnsServerSetting in the next release (of DnsServerDsc) (issue #193). Migrate to use the resource DnsServerScavenging to enforce these properties. - The properties
EnableEDnsProbesandEDnsCacheTimeoutwill be removed from the resource xDnsServerSetting in the next release (of DnsServerDsc) (issue #195). Migrate to use the resource DnsServerEDns to enforce these properties. - The properties
ForwardersandForwardingTimeoutwill be removed from the resource xDnsServerSetting in the next release (of DnsServerDsc) (issue #192) Migrate to use the resource xDnsServerForwarder to enforce these properties.
Added
- xDnsServer
- Added automatic release with a new CI pipeline.
- Add unit tests for the Get-LocalizedData, NewTerminatingError, and Assert-Module helper functions.
- Added description README files for each resource.
- Add example files for resources
- OptIn to the following Dsc Resource Meta Tests:
- Common Tests - Validate Localization
- Common Tests - Validate Example Files To Be Published
- Standardize Resource Localization.
- Added the build task
Publish_GitHub_Wiki_Contentto publish content to the GitHub repository wiki. - Added new source folder
WikiSourcewhich content will be published to the GitHub repository wiki.- Add the markdown file
Home.mdwhich will be automatically updated with the latest version before published to GitHub repository wiki.
- Add the markdown file
- Updated the prerequisites in the GitHub repository wiki (
Home.md) that Microsoft DNS Server is required on a node targeted by a resource, and that the DSC resources requires the DnsServer PowerShell module (issue #37). - Added the base class
ResourcePropertiesBaseto hold DSC properties that can be inherited for all class-based resources. - Added the base class
ResourceBaseto hold methods that should be inherited for all class-based resources. - Added new private function
ConvertTo-TimeSpanto help when evaluating properties that must be passed as strings and then converted to[System.TimeSpan]. - Added new private function
Assert-TimeSpanto help assert that a value provided in a resource can be converted to a[System.TimeSpan]and optionally evaluates so it is not below a minium value or over a maximum value. - Added
prefix.ps1that is used to import dependent modules like DscResource.Common. - Added new resource
- DnsServerScavenging - resource to enforce scavenging settings (issue #189).
- DnsServerEDns - resource to enforce extension mechanisms for DNS (EDNS) settings (issue #194).
- xDNSServerClientSubnet
- Added integration tests.
- DnsServerPrimaryZone
- Added integration tests (issue #173).
- Added more examples.
- xDnsRecordMx
- Added new resource to manage MX records
- xDnsServerZoneScope
- Added integration tests (issue #177).
- New read-only property
ZoneFilewas added to return the zone scope file name used for the zone scope.
- xDnsServerZoneAging
- Added integration tests (issue #176).
- xDnsServerForwarder
- Added integration tests (issue #170).
- Added new properties
TimeoutandEnableReordering(issue #191).
- xDnsServerRootHint
- Added integration tests (issue #174).
- Added a class
DnsRecordBasethat is used as the base class for the resources that create DNS records.- Added unit tests to get code coverage on unimplemented method calls (ensuring the
throwstatements get called)
- Added unit tests to get code coverage on unimplemented method calls (ensuring the
- DnsRecordSrv
- Added new resource to manage SRV records
- DnsRecordSrvScoped
- Added new resource to manage scoped SRV records
- DnsRecordA
- Added new resource to manage A records
- DnsRecordAScoped
- Added new resource to manage scoped A records
- DnsRecordAaaa
- Added new resource to manage AAAA records
- DnsRecordAaaaScoped
- Added new resource to manage scoped AAAA records
- DnsRecordCname
- Added new resource to manage CNAME records
- DnsRecordCnameScoped
- Added new resource to manage scoped CNAME records
- DnsRecordPtr
- Added new resource to manage PTR records
- DnsRecordMx
- Added new resource to manage MX records
- DnsRecordMxScoped
- Added new resource to manage scoped MX records
Changed
- xDnsServer
- BREAKING CHANGE: Set the minimum required PowerShell version to 5.0 to support classes used in the DnsRecordBase-derived resources.
- Resolve style guideline violations for hashtables
- Update pipeline files.
- Renamed the default branch to
main(issue #131). - Uses
PublishPipelineArtifactin Azure Pipelines pipeline. - Unit tests are now run in PowerShell 7 in the Azure Pipelines pipeline (issue #160).
- Merged the historic changelog into CHANGELOG.md (issue #163).
- Only add required role in integration tests pipeline.
- Updated the pipeline to use new deploy tasks.
- Revert back to using the latest version of module Sampler for the pipeline (issue #211).
- Fixed the sections in the GitHub issue and pull request templates to have a bit higher font size. This makes it easier to distinguish the section headers from the text.
- DnsRecordBase
- Changed class to inherit properties from 'ResourcePropertiesBase`.
- xDnsRecordSrv
- Now uses
[CimInstance]::new()both in the resource code and the resource unit test to clone the existing DNS record instead of using the methodClone()that does not exist in PowerShell 7.
- Now uses
- xDnsServerSetting
- BREAKING CHANGE: The mandatory parameter was replaced by the mandatory
parameter
DnsServer. This prevents the resource from being used twice in the same configuration using the same value for the parameterDnsServer(issue #156).
- BREAKING CHANGE: The mandatory parameter was replaced by the mandatory
parameter
- xDnsServerDiagnostics
- BREAKING CHANGE: The mandatory parameter was replaced by the mandatory
parameter
DnsServer. This prevents the resource from being used twice in the same configuration using the same value for the parameterDnsServer(issue #157).
- BREAKING CHANGE: The mandatory parameter was replaced by the mandatory
parameter
- DnsServerPrimaryZone
- Now the property
Nameis always returned fromGet-TargetResourcesince it is aKeyproperty.
- Now the property
- xDnsServerForwarder
- When providing an empty collection the resource will enforce that no forwarders are present.
- DnsRecordSrv
- Changed logic for calculating the record's hostname
Removed
- xDnsServer
- BREAKING CHANGE: The DSC resource xDnsARecord was removed and are replaced by the DSC resource xDnsRecord.
- Removing resource parameter information from README.md in favor of GitHub repository wiki.
- Remove helper function
Remove-CommonParameterin favor of the one in module DscResource.Common (issue #166). - Remove helper function
ConvertTo-CimInstancein favor of the one in module DscResource.Common (issue #167). - Remove helper function
ConvertTo-HashTablein favor of the one in module DscResource.Common (issue #168).
- xDnsServerSetting
- BREAKING CHANGE: The properties
LogIPFilterList,LogFilePath,LogFileMaxSize, andEventLogLevelhave been removed. Use the resource xDnsServerDiagnostics with the propertiesFilterIPAddressList,LogFilePath,MaxMBFileSize, andEventLogLevelrespectively to enforce these settings (issue #190). This is done in preparation to support more settings through the cmdletGet-DnsServerSettingfor the resource xDnsServerSetting, and these values are not available through that cmdlet.
- BREAKING CHANGE: The properties
Fixed
- xDnsServer
- Enable Unit Tests to be run locally.
- Rename integration tests so they are run in the pipeline (issue #134).
- Added back the build task to create releases on GitHub.
- Fixed property descriptions in schema throughout.
- Fixed uploading of code coverage that was broken since Sampler had a bug.
- Fixed examples so the license information point to the correct default branch.
- Fixed a link in the README.md.
- DnsRecordBase
- Fixed so that
Compare-DscParameterStateis used in the methodTest()if the record already exist, to compare the properties exceptEnsurein the desired state against the actual state (issue #205).
- Fixed so that
- xDnsServerDiagnostics
- Fix EnableLogFileRollover Parameter name in README.
- xDnsRecord
- Fix "Removing a DNS A Record" example.
- xDnsServerDiagnostics
- Fixed typo in parameter
EnableLogFileRollover. - Updated integration test to correct template.
- Fixed typo in parameter
- xDnsServerSettings
- Updated integration test to correct template.
- xDnsServerAdZone
- Now the parameter
ComputerNamecan be used without throwing an exception (issue 79).
- Now the parameter
- xDnsServerZoneScope
- Correctly returns the zone scope name when calling
Get-TargetResource.
- Correctly returns the zone scope name when calling
- xDnsServerForwarder
- Now it is possible to just enforce the property
UseRooHintwithout changing forwarders.
- Now it is possible to just enforce the property
- xDnsServerRootHint
- Fixed the verbose message returning the correct number of root hints.
[1.16.0.0] - 2019-10-30
- Changes to xDnsServerADZone
- Raise an exception if
DirectoryPartitionNameis specified andReplicationScopeis notCustom. (issue #110). - Enforce the
ReplicationScopeparameter being passed toSet-DnsServerPrimaryZoneifDirectoryPartitionNamehas changed.
- Raise an exception if
- xDnsServer:
- OptIn to the following Dsc Resource Meta Tests:
- Common Tests - Relative Path Length
- Common Tests - Validate Markdown Links
- Common Tests - Custom Script Analyzer Rules
- Common Tests - Required Script Analyzer Rules
- Common Tests - Flagged Script Analyzer Rules
- OptIn to the following Dsc Resource Meta Tests:
[1.15.0.0] - 2019-09-18
- Fixed: Ignore UseRootHint in xDnsServerForwarder test function if it was not specified in the resource Claudio Spizzi (@claudiospizzi)
[1.14.0.0] - 2019-08-07
- Copied enhancements to Test-DscParameterState from NetworkingDsc
- Put the helper module to its own folder
- Copied enhancements to Test-DscParameterState from NetworkingDsc
- Put the helper module to its own folder
- Added xDnsServerRootHint resource
- Added xDnsServerClientSubnet resource
- Added xDnsServerZoneScope resource
[1.13.0.0] - 2019-06-26
- Added resource xDnsServerConditionalForwarder
- Added xDnsServerDiagnostics resource to this module.
[1.12.0.0] - 2019-05-15
- Update appveyor.yml to use the default template.
- Added default template files .codecov.yml, .gitattributes, and .gitignore, and .vscode folder.
- Added UseRootHint property to xDnsServerForwarder resource.
[1.11.0.0] - 2018-06-13
- Changes to xDnsServer
- Added resource xDnsServerZoneAging. Claudio Spizzi (@claudiospizzi)
- Changes to DnsServerPrimaryZone
- Fix bug in Get-TargetResource that caused the Zone Name to be null (issue #63). Brandon Padgett (@gerane)
- Changes to xDnsRecord
- Added Ptr record support (partly resolves issue #34). Reggie Gibson (@regedit32)
[1.10.0.0] - 2018-05-02
- Changes to xDnsServerADZone
- Fixed bug introduced by PR #49. Previously, CimSessions were always used regardless of connecting to a remote machine or the local machine. Now CimSessions are only utilized when a computername, or computername and credential are used (issue #53). Michael Fyffe (@TraGicCode)
- Fixed all PSSA rule warnings. Michael Fyffe (@TraGicCode)
- Fix DsAvailable key missing (#66). Claudio Spizzi (@claudiospizzi)
[1.9.0.0] - 2017-11-15
- Added resource xDnsServerSetting
- MSFT_xDnsRecord: Added DnsServer property
[1.8.0.0] - 2017-08-23
- Converted AppVeyor.yml to pull Pester from PSGallery instead of Chocolatey
- Fixed bug in xDnsServerADZone causing Get-TargetResource to fail with an extra property.
[1.7.0.0] - 2016-05-18
- Unit tests updated to use standard unit test templates.
- MSFT_xDnsServerZoneTransfer
- Added unit tests.
- Updated to meet Style Guidelines.
- MSFT_xDnsARecord: Removed hard coding of Localhost computer name to eliminate PSSA rule violation.
[1.6.0.0] - 2016-03-30
- Added Resource xDnsServerForwarder.
- Updated README.md with documentation and examples for xDnsServerForwarder resource.
- Added Resource xDnsServerADZone that sets an AD integrated DNS zone.
- Updated README.md with documentation and examples for xDnsServerADZone resource.
- Fixed bug in xDnsRecord causing Test-TargetResource to fail with multiple (round-robin) entries.
- Updated README.md with example DNS round-robin configuration.
[1.5.0.0] - 2016-02-02
- Added Resource xDnsRecord with support for CNames.
- This will replace xDnsARecord in a future release.
- Added DnsServerPrimaryZone resource
[1.4.0.0] - 2015-12-02
- Added support for removing DNS A records
[1.3.0.0] - 2015-10-22
- Fix to retrieving settings for record data
[1.2.0.0] - 2015-09-11
- Removed UTF8 BOM from MOF schema
[1.1.0.0] - 2015-05-01
- Add xDnsARecord resource.
[1.0.0.0] - 2015-04-17
- Initial release with the following resources
- xDnsServerSecondaryZone
- xDnsServerZoneTransfer