The format is based on and uses the types of changes according to Keep a Changelog, and this project adheres to Semantic Versioning.
- SystemProtection
- New resource to configure System Protection settings (formerly xWindowsRestore) - Fixes Issue #364.
- SystemRestorePoint
- New resource to create and delete restore points (formerly xSystemRestorePoint) - Fixes Issue #364.
- ScheduledTask
- Added support for ScheduleType 'OnIdle', 'AtCreation', 'OnSessionState'. Fixes Issue #282.
- Added support for StateChange to allow specifying which session state changes should trigger the task (with ScheduleType = OnSessionState).
- Added support for StopAtDurationEnd permitting control over the 'Stop all running tasks at the end of the repetition duration' feature. Fixes Issue #168.
- Added support for TriggerExecutionTimeLimit permitting control over per-trigger 'Stop task if it runs longer than...' feature.
- BREAKING CHANGE: ScheduledTask
- Fixed User parameter to correctly return the user that triggers an AtLogon or OnSessionState Schedule Type, instead of the current value of ExecuteAsCredential. This parameter is only valid when using the AtLogon and OnSessionState Schedule Types.
- Fixed User parameter to permit use even if LogonType = Group.
- Updated RandomDelay logic from a blacklist to a whitelist.
- Updated Delay parameter logic to reflect other TimeSpan based values.
- Updated unit tests to use Should -Invoke for Pester 5 compatibility.
VirtualMemory
fix incorrect variable nameSmbServerConfiguration
remove errant argument- Update all calls to edit the registry so that the value Type is explicitly set. Fixes Issue #433.
- BREAKING CHANGE: ScheduledTask
- Allow StartTime to be used to set the 'Activate' setting when adding ScheduleType triggers other than 'Once', 'Daily' and 'Weekly'.
- Updated Delay parameter to support ScheduleType AtLogon, AtStartup, AtCreation, OnSessionState. Fixes Issue #345.
- Updated User parameter for use with ScheduleType OnSessionState in addition to AtLogon.
- Updated integration tests to ensure resource and configuration names are matching.
- Converted tests to Pester 5
- Rename Delete-ADSIObject to Delete-ADSIObject to satisfy HQRM
- Removed
Get-InvalidOperationRecord
to use version provided byDscResource.Test
- ScheduledTask
- Added support for configuring Event ValueQueries, allowing the triggering event to be parsed for values which are sent to the scheduled task script. Fixes Issue #392.
- ScheduledTask
- Resolved an issue where DaysOfWeek array ordering can cause configuration drift. Fixes Issue #354.
- Update build process to pin GitVersion to 5.* to resolve errors (gaelcolas/Sampler#477).
- CI Pipeline
- Updated pipeline files to match current DSC Community patterns - fixes Issue #427.
- Updated HQRM step to use windows-latest image.
- ComputerManagementDsc
- The class-based resources are now re-using the module DscResource.Base - Fixes Issue #404.
- Removed the file
source/build.psd1
as it is no longer required for the build pipeline. - Fixed Delete-ADSIObject so that existing AD Computer objects will be deleted. Fixes Issue #414.
- PSResourceRepository
- The resource now supports the read-only property
Reasons
that the compliance part (audit via Azure Policy) of Azure AutoManage Machine Configuration uses.
- The resource now supports the read-only property
- ComputerManagementDsc
- AppVeyor build now sets the correct module version to be able to run tests.
- ScheduledTask
- Allowed values for ScheduleType updated to accept AtLogon over AtLogOn - Fixes Issue #420
- SmbShare
- Allow Test-TargetResource to succeed when access entries use different order - Fixes Issue #247, Issue #423
- UserAccountControl
- Ensure registry keys are created as REG_DWORD rather than REG_SZ - Fixes Issue #412
- ScheduledTask
- No longer conflates resource parameter
BuiltInAccount
and*-ScheduledTask
parameteruser
- Fixes Issue #385
- No longer conflates resource parameter
- PSResourceRepository
- New class-based resource to manage PowerShell Resource Repositories - Fixes Issue #393
- Computer
- Support Options Parameter for domain join - Fixes Issue #234.
- When joining a computer to a domain, existing AD computer objects will be deleted - Fixes Issue #55, Issue #58.
- BREAKING CHANGE: Windows Management Framework 5.0 is required.
- ComputerManagementDsc
- The resource names were removed from the property
DscResourcesToExport
in the module manifest in the source folder as the built module is automatically updated with this information by the pipeline - Fixes Issue #396. - Moved the build step of the pipeline to a Windows build worker when running in Azure DevOps.
- The resource names were removed from the property
- WindowsEventLog
- Added support to restrict guest access - Fixes Issue #338.
- Added support to create custom event sources and optionally register resource files - Fixes Issue #355.
- WindowsCapability
- Added the 'Source' parameter for Add-WindowsCapability as an optional parameter - Fixes Issue #361
- WindowsEventLog
- Reformatted code to better align with current DSCResources coding standards.
- Renamed
master
branch tomain
- Fixes Issue #348. - Added support for publishing code coverage to
CodeCov.io
and Azure Pipelines - Fixes Issue #367. - Updated build to use
Sampler.GitHubTasks
- Fixes Issue #365. - Corrected case of module publish tasks - Fixes Issue #368.
- Corrected code coverage badge in
README.md
. - Updated build pipeline tasks and remove unused environment variables.
- Removed duplicate code coverage badge.
- Added Publish_GitHub_Wiki_Content task to publish stage of build pipeline - Fixes Issue #383.
- Updated .github issue templates to standard - Fixes Issue #383.
- Added Create_ChangeLog_GitHub_PR task to publish stage of build pipeline.
- Added SECURITY.md.
- Updated pipeline Deploy_Module anb Code_Coverage jobs to use ubuntu-latest images - Fixes Issue #383.
- Updated pipeline unit tests and integration tests to use Windows Server 2019 and Windows Server 2022 images - Fixes Issue #383.
- WindowsEventLog
- Fixed issue requiring IsEnabled to be declared and set to $true in order to set the MaximumSizeInBytes property - Fixes Issue #349.
- Fixed issue where configuring log retention on a non-classic event log will throw.
- ScheduledTask
- Fixed issue with disabling scheduled tasks that have "Run whether user is logged on or not" configured - Fixes Issue #306.
- Fixed issue with
ExecuteAsCredential
not returning fully qualified username on newer versions of Windows 10 and Windows Server 2019 for both local accounts and domain accounts - Fixes Issue #352. - Fixed issue with
StartTime
failing Test-Resource if not specified in the resource - Fixes Issue #148.
- PendingReboot
- Fixed issue with loading localized data on non en-US operating systems - Fixes Issue #350.
- Fixed pipeline by replacing the GitVersion task in the
azure-pipelines.yml
with a script.
- ComputerManagementDsc
- Automatically publish documentation to GitHub Wiki - Fixes Issue #342.
- ComputerManagementDsc
- Updated to use the common module DscResource.Common - Fixes Issue #327.
- Fixed build failures caused by changes in
ModuleBuilder
module v1.7.0 by changingCopyDirectories
toCopyPaths
- Fixes Issue #332. - Pin
Pester
module to 4.10.1 because Pester 5.0 is missing code coverage - Fixes Issue #336.
- ScheduledTask
- Add "StopExisting" to valid values for MultipleInstances parameter - Fixes Issue #333.
- ComputerManagementDsc
- Improved integration test reliability by resetting the DSC LCM
before executing each test using the
Reset-DscLcm
function - Fixes Issue #329. - Split integration test MOF compilation out of application to standardize pattern and make it easier to determine cause of failure.
- Improved integration test reliability by resetting the DSC LCM
before executing each test using the
- Change Azure DevOps Pipeline definition to include
source/*
- Fixes Issue #324. - Updated pipeline to use
latest
version ofModuleBuilder
- Fixes Issue #324. - Merge
HISTORIC_CHANGELOG.md
intoCHANGELOG.md
- Fixes Issue #325. - ScheduledTask:
- Fix ServiceAccount behavior on Windows Server 2016 - Fixes Issue #323.
- Fixed problems in integration test configuration naming.
- Changed
ScheduledTaskExecuteAsGroupAdd
andScheduledTaskExecuteAsGroupMod
to use a group name that does not include a domain nameBUILTIN\
. - Added known issues to the documentation for describing
ExecuteAsCredential
behavior - Fixes Issue #294.
- PendingReboot:
- Changed integration tests to clear pending file rename reboot flag before executing tests and restoring when complete.
- ComputerManagementDsc
- Added build task
Generate_Conceptual_Help
to generate conceptual help for the DSC resource. - Added build task
Generate_Wiki_Content
to generate the wiki content that can be used to update the GitHub Wiki.
- Added build task
- ComputerManagementDsc
- Updated CI pipeline files.
- No longer run integration tests when running the build task
test
, e.g..\build.ps1 -Task test
. To manually run integration tests, run the following:.\build.ps1 -Tasks test -PesterScript 'tests/Integration' -CodeCoverageThreshold 0
- ScheduledTask:
- Added missing 'NT Authority' domain prefix when testing tasks that use the BuiltInAccount property - Fixes Issue #317
- Added new resource IEEnhancedSecurityConfiguration (moved from module xSystemSecurity).
- Added new resource UserAccountControl (moved from module xSystemSecurity).
- SmbShare:
- Add parameter ScopeName to support creating shares in a different scope - Fixes Issue #284.
- Added
.gitattributes
to ensure CRLF is used when pulling repository - Fixes Issue #290. - SystemLocale:
- Migrated SystemLocale from SystemLocaleDsc.
- RemoteDesktopAdmin:
- Correct Context messages in integration tests by adding 'When'.
- WindowsCapability:
- Change
Test-TargetResource
to remove test for valid LogPath.
- Change
- BREAKING CHANGE: Changed resource prefix from MSFT to DSC.
- Updated to use continuous delivery pattern using Azure DevOps - Fixes Issue #295.
- None
- None
- WindowsCapability:
- Fix
A parameter cannot be found that matches parameter name 'Ensure'.
error inTest-TargetResource
- Fixes Issue #297.
- Fix
- None
- ComputerManagementDsc:
- Update psd1 description - Fixes Issue #269.
- Fix minor style issues with missing spaces between
param
statements and '('. - SmbServerConfiguration:
- New resource for configuring the SMB Server settings.
- Added examples for SMB Server Configuration.
- Minor corrections to CHANGELOG.MD.
- ScheduledTask:
- Fixed bug when description has any form of whitespace at beginning or end the resource would not go into state - Fixes Issue #258.
- SmbShare:
- Fixed bug where the resource would not update the path of a share if the share exists on a different path. Adds a parameter Force to the SmbShare resource to allow updating of the path - Fixes Issue #215
- Removal of duplicate code in Add-SmbShareAccessPermission helper function fixes Issue #226.
- ScheduledTask:
- Better compatibility with Group LogonType
when passing BuiltIn groups through ExecuteAsCredential
- Primary use case is 'BUILTIN\Users'
- Use the ExecuteAsCredential property to pass the username The PSCredential needs a non-null that is ignored
- Delay property not handled properly on AtLogon and AtStartup trigger - Fixes Issue #230.
- Changed
Get-ScheduledTask
calls toScheduledTasks\Get-ScheduledTask
to avoid name clash withCarbon
module. Fixes Issue #248. - Cast
MultipleInstances
value returned byGet-TargetResource
tostring
- fixes Issue #255.
- Better compatibility with Group LogonType
when passing BuiltIn groups through ExecuteAsCredential
- PendingReboot:
- Migrated xPendingReboot from xPendingReboot and renamed to PendingReboot.
- Converted to meet HQRM guidelines - Fixes Issue #12.
- Changed
SkipCcmClientSDK
parameter to default to$true
- Fixes Issue #13. - Fixed
Test-TargetResource
so that if ConfigMgr requires a reboot then the pending reboot will be set - Fixes Issue #26. - Refactored
Test-TargetResource
to reduce code duplication and move to a data driven design. - Refactored
Get-TargetResource
by adding a new functionGet-PendingRebootState
so thatTest-TargetResource
no longer needed to useGet-TargetResource
. This eliminated the need to include write parameters inGet-TargetResource
. - Converted the call to
Invoke-WmiMethod
toInvoke-CimMethod
. - Deleted the code that removes the
regRebootLocations
variable at the end of the resource as it appears to serve no purpose.
- Correct all tests to meet Pester 4.0 standards.
- RemoteDesktopAdmin:
- New resource for configuring Remote Desktop for Administration - fixes Issue #224.
- Updated common function
Test-DscParameterState
to support ordered comparison of arrays by copying function and tests fromNetworkingDsc
- fixes Issue #250. - BREAKING CHANGE: ScheduledTask:
- Correct output type of
DaysInterval
,StartTime
,WeeksDaysOfWeek
, andWeeksInterval
parameters fromGet-TargetResource
to match MOF. - Refactored
Get-TargetResource
to remove parameters that are not key or required - fixes Issue #249. - Added function
Test-DateStringContainsTimeZone
to determine if a string containing a date time includes a time zone. - Enable verbose preference to be passed through to
Test-DscParameterState
. - Changed
Test-TargetResource
so thatStartTime
is only compared for trigger typesDaily
,Weekly
orOnce
.
- Correct output type of
- Fix minor style issues in statement case.
- Computer:
- Fix for 'directory service is busy' error when joining a domain and renaming a computer when JoinOU is specified - Fixes Issue #221.
- Added new resource SmbShare
- Moved and improved from deprecated module xSmbShare.
- Changes to ComputerManagementDsc.Common
- Updated Test-DscParameterState so it now can compare zero item collections (arrays).
- Changes to WindowsEventLog
- Minor style guideline cleanup.
- Opt-in to common test to validate localization. Fixed localization strings in resources - Fixes Issue #217.
- PowerShellExecutionPolicy:
- Removed
SupportsShouldProcess
as it cannot be used with DSC - Fixes Issue #219.
- Removed
- Combined all ComputerManagementDsc.ResourceHelper module functions into
ComputerManagementDsc.Common module - Fixes Issue #218.
- Minor code cleanup against style guideline.
- Remove code from
New-InvalidOperationException
because it was a code path that could never could be used due to the parameter validation preventing the helper function being called that way. - Updated all
Get-LocalizationData
to latest version from DSCResource.Template. - Fixed an issue with the helper function
Test-IsNanoServer
that prevented it to work. Though the helper function is not used, so this issue was not caught until now when unit tests was added. - Improved code coverage.
- ScheduledTask:
- IdleWaitTimeout returned from Get-TargetResource always null - Fixes Issue #186.
- Added BuiltInAccount Property to allow running task as one of the build in service accounts - Fixes Issue #130.
- Refactored module folder structure to move resource to root folder of repository and remove test harness - fixes Issue #188.
- Added a CODE_OF_CONDUCT.md with the same content as in the README.md and linked to it from README.MD instead.
- Updated test header for all unit tests to version 1.2.4.
- Updated test header for all integration to version 1.3.3.
- Enabled example publish to PowerShell Gallery by adding
gallery_api
environment variable toAppVeyor.yml
.
- Correct PSSA custom rule violations - fixes Issue #209.
- Correct long example filenames for PowerShellExecutionPolicy examples.
- Opted into Common Tests 'Required Script Analyzer Rules', 'Flagged Script Analyzer Rules', 'New Error-Level Script Analyzer Rules' 'Custom Script Analyzer Rules' and 'Relative Path Length' - fixes Issue #152.
- PowerPlan:
- Added support to specify the desired power plan either as name or guid. Fixes Issue #59
- Changed the resource so it uses Windows APIs instead of WMI/CIM (Workaround for Server 2012R2 Core, Nano Server, Server 2019 and Windows 10). Fixes Issue #155 and Issue #65
- WindowsEventLog:
- Migrated the xWinEventLog from xWinEventLog and renamed to WindowsEventLog.
- Moved strings in localization file.
- LogMode is now set with Limit-EventLog,
- Fixes Issue #18.
- Updated examples to format required for publishing to PowerShell Gallery - fixes Issue #206.
- Opted into Common Tests 'Validate Example Files To Be Published' and 'Validate Markdown Links'.
- Updated LICENSE file to match the Microsoft Open Source Team standard. Fixes Issue #197.
- Explicitly removed extra hidden files from release package
- ScheduledTask:
- Added support for Group Managed Service Accounts, implemented using the ExecuteAsGMSA parameter. Fixes Issue #111
- Added support to set the Synchronize Across Time Zone option. Fixes Issue #109
- Added .VSCode settings for applying DSC PSSA rules - fixes Issue #189.
- BREAKING CHANGE: PowerPlan:
- Added IsActive Read-Only Property - Fixes Issue #171.
- InActive power plans are no longer returned with their Name set to null. Now, the name is always returned and the Read-Only property of IsActive is set accordingly.
- PowershellExecutionPolicy:
- Updated to meet HQRM guidelines.
- Migrated the xPowershellExecutionPolicy from xPowershellExecutionPolicy and renamed to PowershellExecutionPolicy.
- Moved strings to localization file.
- Changed the scope from Global to Script in DSC_ScheduledTask.Integration.Tests.ps1
- Changed the scope from Global to Script ComputerManagementDsc.Common.Tests.ps1
- ScheduledTask:
- Added support for event based triggers, implemented using the ScheduleType OnEvent fixes Issue #167
- TimeZone:
- Migrated xTimeZone resource from xTimeZone and renamed to TimeZone - fixes Issue #157.
- Moved Test-Command from ComputerManagementDsc.ResourceHelper to ComputerManagementDsc.Common module to match what TimeZone requires. It was not exported in ComputerManagementDsc.ResourceHelper and not used.
- Add
server
parameter toComputer
resource - fixes Issue #161
- BREAKING CHANGE:
- Renamed ComputerManagement to ComputerManagementDsc - fixes Issue #119.
- Changed all MSFT_xResourceName to MSFT_ResourceName.
- Updated DSCResources, Examples, Modules and Tests with new naming.
- Updated Year to 2018 in License and Manifest.
- Updated README.md from xComputerManagement to ComputerManagementDsc.
- OfflineDomainJoin:
- Cleaned up spacing in strings file to make consistent with other resources.
- VirtualMemory:
- Converted strings to single quotes in integration test.
- xScheduledTask:
- Update existing Scheduled Task using SetScheduleTask instead of UnRegister/Register - See Issue #134.
- Fix master branch AppVeyor badge link URL in README.MD - See Issue #140.
- Fix deletion of scheduled task with unknown or empty task trigger. Get-TargetResource returns an empty ScheduleType string if the task trigger is empty or unknown - See Issue #137.
- Added dependency information for xScheduledTask to README.MD.
- BREAKING CHANGE: xScheduledTask:
- Breaking change because
Get-TargetResource
no longer outputsActionExecutable
andScheduleType
properties when the scheduled task does not exist. It will also includeTaskPath
in output when scheduled task does not exist.
- Breaking change because
- xScheduledTask:
- Add support to disable built-in scheduled tasks - See Issue #74.
- Fix unit test mocked schedule task object structure.
- Fix error message when trigger type is unknown - See Issue #121.
- Moved strings into separate strings file.
- Updated to meet HQRM guidelines.
- xComputer:
- Resolved bug in Get-ComputerDomain where LocalSystem doesn't have rights to the domain.
- Updated tests to meet Pester V4 guidelines - See Issue #106.
- Converted module to use auto documentation format.
- xScheduledTask:
- Enable Execution Time Limit of task to be set to indefinite
by setting
ExecutionTimeLimit
to '00:00:00' - See Issue #115.
- Enable Execution Time Limit of task to be set to indefinite
by setting
- xPowerPlan:
- Updated to meet HQRM guidelines.
- Converted calls to
throw
to useNew-InvalidOperationException
in CommonResourceHelper.
- Move Common Resource Helper functions into modules folder.
- Changed resources to use Common Resource Helper functions.
- Moved strings for Common Resource Helper functions into separate strings file.
- Added unit tests for Common Helper functions.
- xOfflineDomainJoin:
- Updated to meet HQRM guidelines.
- xScheduledTask:
- Applied autoformatting to examples to improve readability.
- Added LogonType and RunLevel parameters for controlling task execution.
- Correct
Assert-VerifiableMocks
toAssert-VerifiableMock
- xComputer: Added parameter to set the local computer description along with documentation and unit tests for this change.
- BREAKING CHANGE: xScheduledTask:
- Converted all Interval/Duration type parameters over to be string format to prevent the Timezone the MOF file was created in from being stored. This is to fix problems where MOF files are created in one timezone but deployed nodes to a different timezone - See Issue #85
- Added ConvertTo-TimeSpanFromScheduledTaskString function and refactored to reduce code duplication.
- Added support for setting repetition duration to
Indefinitely
.
- xComputer:
- Moved strings to localization file.
- Updated to meet HQRM guidelines.
- xVirtualMemory:
- Refactored shared common code into new utility functions to reduce code duplication and improve testability.
- Moved strings into localizable strings file.
- Converted calls to
throw
to useNew-InvalidOperationException
in CommonResourceHelper. - Improved unit test coverage.
- Updated to meet HQRM guidelines.
- xComputer: Changed comparison that validates if we are in the correct AD Domain to work correctly if FQDN wasn't used.
- Updated AppVeyor.yml to use AppVeyor.psm1 module in DSCResource.Tests.
- Removed Markdown.md errors.
- Added CodeCov.io support.
- xScheduledTask
- Fixed incorrect TaskPath handling - Issue #45
- Change examples to meet HQRM standards and optin to Example validation tests.
- Replaced examples in README.MD to links to Example files.
- Added the VS Code PowerShell extension formatting settings that cause PowerShell files to be formatted as per the DSC Resource kit style guidelines - Issue #91.
- Opted into Common Tests 'Validate Module Files' and 'Validate Script Files'.
- Converted files with UTF8 with BOM over to UTF8 - fixes Issue #90.
- Updated Year to 2017 in License and Manifest - fixes Issue #87.
- Added .github support files - fixes Issue #88:
- CONTRIBUTING.md
- ISSUE_TEMPLATE.md
- PULL_REQUEST_TEMPLATE.md
- Resolved all PSScriptAnalyzer warnings and style guide warnings.
- xOfflineDomainJoin:
- Changed to use CommonResourceHelper to load localization strings.
- Renamed en-US to be correct case so that localization strings can be loaded.
- Suppress PSScriptAnalyzer rule PSAvoidGlobalVars for
$global:DSCMachineStatus = 1
.
- xComputer:
- Suppress PSScriptAnalyzer rule PSAvoidGlobalVars for
$global:DSCMachineStatus = 1
.
- Suppress PSScriptAnalyzer rule PSAvoidGlobalVars for
- xVirtualMemory:
- Suppress PSScriptAnalyzer rule PSAvoidGlobalVars for
$global:DSCMachineStatus = 1
.
- Suppress PSScriptAnalyzer rule PSAvoidGlobalVars for
- Updated resources
- BREAKING CHANGE: xScheduledTask: Added nearly all available parameters for tasks
- xVirtualMemory:
- Fixed failing tests.
- Added resources:
- xVirtualMemory
- Added resources
- xPowerPlan
- Converted AppVeyor.yml to pull Pester from PSGallery instead of Chocolatey.
- Changed AppVeyor.yml to use default image
- xScheduledTask: Fixed bug with different OS versions returning repeat interval differently
- Added support for enabling or disabling scheduled tasks
- The Name parameter resolves to $env:COMPUTERNAME when the value is localhost
- Added the following resources:
- DSC_xOfflineDomainJoin resource to join computers to an AD Domain using an Offline Domain Join request file.
- DSC_xScheduledTask resource to control scheduled tasks on the local server
- DSC_xOfflineDomainJoin: Corrected localizedData.DomainAlreadyJoinedhMessage name.
- xComputer: Changed credential generation code in tests to avoid triggering PSSA rule PSAvoidUsingConvertToSecureStringWithPlainText. Renamed unit test file to match the name of Resource file.
- Update Unit tests to use the standard folder structure and test templates.
- Added .gitignore to prevent commit of DSCResource.Tests.
- Added validation to the Name parameter
- Added the JoinOU parameter which allows you to specify the organizational unit that the computer account will be created in
- Added the CurrentOU read-only property that shows the organizational unit that the computer account is currently in
- xComputer
- Fixed issue with Test-TargetResource when not specifying Domain or Workgroup name
- Added tests
- Added types to Get/Set/Test definitions to allow xResourceDesigner validation to succeed
- Added functionality to enable moving computer from one domain to another
- Modified Test-DscConfiguration logics when testing domain join
- Initial release with the following resources:
- xComputer