Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ScheduledTask - DaysOfWeek array ordering causing config drift #354

Open
dappleby300 opened this issue Jan 13, 2021 · 0 comments
Open

ScheduledTask - DaysOfWeek array ordering causing config drift #354

dappleby300 opened this issue Jan 13, 2021 · 0 comments

Comments

@dappleby300
Copy link

Details of the scenario you tried and the problem that is occurring

When creating a ScheduledTask using DaysOfWeek if the array ordering is not correct the configuration constantly drifts

It seems the array order must match the enum ordering in the code. This issue maybe addressed with just a note in the documentation.

Verbose logs showing the problem

VERBOSE: [SERVER-FS1]:                            [[ScheduledTask]TestSH::[profile_win2019]profile_win2019] Comparing values in property 'DaysOfWeek'. (DRC0028)
VERBOSE: [SERVER-FS1]:                            [[ScheduledTask]TestSH::[profile_win2019]profile_win2019] NOTMATCH: Value [0] (type 'System.String') for property 'DaysOfWeek' does match. Current state is 'Sunday' and desired state is 'Monday'. (DRC0024)
VERBOSE: [SERVER-FS1]:                            [[ScheduledTask]TestSH::[profile_win2019]profile_win2019] NOTMATCH: Value [1] (type 'System.String') for property 'DaysOfWeek' does match. Current state is 'Monday' and desired state is 'Tuesday'. (DRC0024)
VERBOSE: [SERVER-FS1]:                            [[ScheduledTask]TestSH::[profile_win2019]profile_win2019] NOTMATCH: Value [2] (type 'System.String') for property 'DaysOfWeek' does match. Current state is 'Tuesday' and desired state is 'Wednesday'. (DRC0024)
VERBOSE: [SERVER-FS1]:                            [[ScheduledTask]TestSH::[profile_win2019]profile_win2019] NOTMATCH: Value [3] (type 'System.String') for property 'DaysOfWeek' does match. Current state is 'Wednesday' and desired state is 'Thursday'. (DRC0024)
VERBOSE: [SERVER-FS1]:                            [[ScheduledTask]TestSH::[profile_win2019]profile_win2019] NOTMATCH: Value [4] (type 'System.String') for property 'DaysOfWeek' does match. Current state is 'Thursday' and desired state is 'Friday'. (DRC0024)
VERBOSE: [SERVER-FS1]:                            [[ScheduledTask]TestSH::[profile_win2019]profile_win2019] NOTMATCH: Value [5] (type 'System.String') for property 'DaysOfWeek' does match. Current state is 'Friday' and desired state is 'Sunday'. (DRC0024)

Suggested solution to the issue

Simply adjusting the ordering of the DaysOfWeek in the configuration fixes this issue.

ScheduledTask 'TestSH'
    {
        Ensure                  = 'Present'
        TaskName                = 'TestSH'
        TaskPath                = $Node.ScheduledTaskBasePath
        Description             = 'Test'
        ActionExecutable        = 'c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe'
        ActionArguments         = '-NonInteractive -File C:\scripts\testing\testscript.ps1'
        ActionWorkingPath       = 'C:\scripts\testing'
        ScheduleType            = 'Weekly'
        WeeksInterval           = 1
        DaysOfWeek              = @('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday')
        StartTime               = '2020-01-01 14:00:02'
        ExecutionTimeLimit      = '0.12:00:00'
        MultipleInstances       = 'IgnoreNew'
        Priority                = 9
        Compatibility           = 'Win8'
    }

The DSC configuration that is used to reproduce the issue (as detailed as possible)

ScheduledTask 'TestSH'
    {
        Ensure                  = 'Present'
        TaskName                = 'TestSH'
        TaskPath                = $Node.ScheduledTaskBasePath
        Description             = 'Test'
        ActionExecutable        = 'c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe'
        ActionArguments         = '-NonInteractive -File C:\scripts\testing\testscript.ps1'
        ActionWorkingPath       = 'C:\scripts\testing'
        ScheduleType            = 'Weekly'
        WeeksInterval           = 1
        DaysOfWeek              = @('Monday','Tuesday','Wednesday','Thursday','Friday','Sunday')
        StartTime               = '2020-01-01 14:00:02'
        ExecutionTimeLimit      = '0.12:00:00'
        MultipleInstances       = 'IgnoreNew'
        Priority                = 9
        Compatibility           = 'Win8'
    }

The operating system the target node is running

OsName               : Microsoft Windows Server 2019 Datacenter
OsOperatingSystemSKU : DatacenterServerEdition
OsArchitecture       : 64-bit
WindowsVersion       : 1809
WindowsBuildLabEx    : 17763.1.amd64fre.rs5_release.180914-1434
OsLanguage           : en-US
OsMuiLanguages       : {en-US}

Version and build of PowerShell the target node is running

Name                           Value
----                           -----
PSVersion                      5.1.17763.1490
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.17763.1490
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

Version of the DSC module that was used ('dev' if using current dev branch)

ComputerManagementDSC 8.4.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant