dataplat / dbatools

🚀 SQL Server automation and instance migrations have never been safer, faster or freer
https://dbatools.io
MIT License
2.39k stars 787 forks source link

New-DbaAgentSchedule flags an error with a start time before 10000? #9388

Closed SQLDataCloud closed 2 weeks ago

SQLDataCloud commented 3 weeks ago

Verified issue does not already exist?

No, I did not search

What error did you receive?

image

Steps to Reproduce

# provide your command(s) executed pertaining to dbatools
# please include variable values (redacted or fake if needed) for reference

$dailymaintenancestarttime = 000000 #all of the daily maintenance jobs i.e. cycle error log - job start time $dailymaintenanceschedule = $jobprefix + ' - Daily Maintenance'

New-DbaAgentSchedule -SqlInstance $sqlinstance -Schedule $dailymaintenanceschedule -FrequencyType Daily -FrequencyInterval 1 -StartTime $dailymaintenancestarttime -Force

Please confirm that you are running the most recent version of dbatools

2.1.16

Other details or mentions

No response

What PowerShell host was used when producing this error

Windows PowerShell ISE (powershell_ise.exe)

PowerShell Host Version

Name Value


PSVersion 5.1.22621.2506
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.22621.2506
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1

SQL Server Edition and Build number

Microsoft SQL Server 2022 (RTM-GDR) (KB5035432) - 16.0.1115.1 (X64) Mar 15 2024 01:13:46 Copyright (C) 2022 Microsoft Corporation Developer Edition (64-bit) on Windows 10 Pro 10.0 (Build 22631: )

.NET Framework Version

.NET Framework 4.8.9241.0

andreasjordan commented 3 weeks ago

You should change $dailymaintenancestarttime = 000000 to $dailymaintenancestarttime = '000000' - that should solve your problem.

andreasjordan commented 3 weeks ago

Fix for the time regex is to change it to $RegexTime = '^([01]\d|2[0-3])[0-5]\d[0-5]\d$'. It was way to complicated and not correct. We don't care about $Matches as we don't use it.

The date regex is also very, very complicated...

andreasjordan commented 3 weeks ago

There are other issues, will do a refactoring...

SQLDataCloud commented 3 weeks ago

Thanks @andreasjordan