Managed Update Frequency for the Scheduler
parent
4491524378
commit
937e281ad0
|
@ -113,5 +113,43 @@
|
|||
</enum>
|
||||
</elements>
|
||||
</policy>
|
||||
<policy name="UpdatesInterval" class="Machine" displayName="$(string.UpdatesInterval)" explainText="$(string.UpdatesInterval_Explain)" key="Software\Policies\Romanitho\Winget-AutoUpdate" presentation="$(presentation.UpdatesInterval)">
|
||||
<parentCategory ref="WAU"/>
|
||||
<supportedOn ref="WAU:SUPPORTED_WAU_1_15_3"/>
|
||||
<elements>
|
||||
<enum id="UpdatesInterval" valueName="WAU_UpdatesInterval">
|
||||
<item displayName="$(string.UpdatesInterval_Daily)">
|
||||
<value>
|
||||
<string>-Daily -At 06am</string>
|
||||
</value>
|
||||
</item>
|
||||
<item displayName="$(string.UpdatesInterval_BiDaily)">
|
||||
<value>
|
||||
<string>-Daily -At 06am -DaysInterval 2</string>
|
||||
</value>
|
||||
</item>
|
||||
<item displayName="$(string.UpdatesInterval_Weekly)">
|
||||
<value>
|
||||
<string>-Weekly -At 06am</string>
|
||||
</value>
|
||||
</item>
|
||||
<item displayName="$(string.UpdatesInterval_BiWeekly)">
|
||||
<value>
|
||||
<string>-Weekly -At 06am -WeeksInterval 2</string>
|
||||
</value>
|
||||
</item>
|
||||
<item displayName="$(string.UpdatesInterval_Monthly)">
|
||||
<value>
|
||||
<string>-Weekly -At 06am -WeeksInterval 4</string>
|
||||
</value>
|
||||
</item>
|
||||
<item displayName="$(string.UpdatesInterval_Never)">
|
||||
<value>
|
||||
<string>Never</string>
|
||||
</value>
|
||||
</item>
|
||||
</enum>
|
||||
</elements>
|
||||
</policy>
|
||||
</policies>
|
||||
</policyDefinitions>
|
|
@ -32,6 +32,22 @@ If this policy is not configured or disabled, the Default displays all notificat
|
|||
<string id="NotificationLevel_Full">1. Full (Default, displays all notifications)</string>
|
||||
<string id="NotificationLevel_SuccessOnly">2. SuccessOnly (Only displays notifications for success)</string>
|
||||
<string id="NotificationLevel_None">3. None (Does not display any notification)</string>
|
||||
<string id="UpdatesInterval">Update Frequency</string>
|
||||
<string id="UpdatesInterval_Explain">If this policy is enabled, you can configure the Update Frequency:
|
||||
1. Daily (Default)
|
||||
2. BiDaily
|
||||
3. Weekly
|
||||
4. BiWeekly
|
||||
5. Monthly
|
||||
6. Never (Can be set to 'Never' in combination with '-UpdatesAtLogon' for instance)
|
||||
|
||||
If this policy is not configured or disabled, update frequency: (1. Daily).</string>
|
||||
<string id="UpdatesInterval_Daily">1. Daily (Default)</string>
|
||||
<string id="UpdatesInterval_BiDaily">2. BiDaily</string>
|
||||
<string id="UpdatesInterval_Weekly">3. Weekly</string>
|
||||
<string id="UpdatesInterval_BiWeekly">4. BiWeekly</string>
|
||||
<string id="UpdatesInterval_Monthly">5. Monthly</string>
|
||||
<string id="UpdatesInterval_Never">6. Never (Can be set to 'Never' in combination with '-UpdatesAtLogon' for instance)</string>
|
||||
</stringTable>
|
||||
<presentationTable>
|
||||
<presentation id="ListPath">
|
||||
|
@ -47,6 +63,9 @@ If this policy is not configured or disabled, the Default displays all notificat
|
|||
<presentation id="NotificationLevel">
|
||||
<dropdownList refId="NotificationLevel"/>
|
||||
</presentation>
|
||||
<presentation id="UpdatesInterval">
|
||||
<dropdownList refId="UpdatesInterval"/>
|
||||
</presentation>
|
||||
</presentationTable>
|
||||
</resources>
|
||||
</policyDefinitionResources>
|
||||
|
|
|
@ -99,6 +99,26 @@ if ($IsSystem) {
|
|||
$ChangedSettings++
|
||||
}
|
||||
|
||||
if ($null -ne $($WAUPolicies.WAU_UpdatesInterval) -and ($($WAUPolicies.WAU_UpdatesInterval) -ne $($WAUConfig.UpdatesInterval))) {
|
||||
New-ItemProperty $regPath -Name WAU_UpdatesInterval -Value $($WAUPolicies.WAU_UpdatesInterval) -Force | Out-Null
|
||||
switch ($($WAUPolicies.WAU_UpdatesInterval)) {
|
||||
"-Daily -At 06am" {$tasktrigger = New-ScheduledTaskTrigger -Daily -At 06am; Set-ScheduledTask -TaskName "Winget-AutoUpdate" -Trigger $tasktrigger; break}
|
||||
"-Daily -At 06am -DaysInterval 2" {$tasktrigger = New-ScheduledTaskTrigger -Daily -At 06am -DaysInterval 2; Set-ScheduledTask -TaskName "Winget-AutoUpdate" -Trigger $tasktrigger; break}
|
||||
"-Weekly -At 06am" {$tasktrigger = New-ScheduledTaskTrigger -Weekly -At 06am; Set-ScheduledTask -TaskName "Winget-AutoUpdate" -Trigger $tasktrigger; break}
|
||||
"-Weekly -At 06am -WeeksInterval 2" {$tasktrigger = New-ScheduledTaskTrigger -Weekly -At 06am -WeeksInterval 2; Set-ScheduledTask -TaskName "Winget-AutoUpdate" -Trigger $tasktrigger; break}
|
||||
"-Weekly -At 06am -WeeksInterval 4" {$tasktrigger = New-ScheduledTaskTrigger -Weekly -At 06am -WeeksInterval 4; Set-ScheduledTask -TaskName "Winget-AutoUpdate" -Trigger $tasktrigger; break}
|
||||
"Never" {$service = New-Object -ComObject Schedule.Service; $service.Connect($env:COMPUTERNAME); $folder = $service.GetFolder('\'); $task = $folder.GetTask("Winget-AutoUpdate"); $definition = $task.Definition; $definition.Triggers.Remove(1); $folder.RegisterTaskDefinition($task.Name, $definition, 4, $null, $null, $null) | Out-Null; break}
|
||||
default {"Something else happened"; break}
|
||||
}
|
||||
$ChangedSettings++
|
||||
}
|
||||
elseif ($null -eq $($WAUPolicies.WAU_UpdatesInterval) -and $($WAUConfig.WAU_UpdatesInterval) -ne "-Daily -At 06am") {
|
||||
New-ItemProperty $regPath -Name WAU_UpdatesInterval -Value "-Daily -At 06am" -Force | Out-Null
|
||||
$tasktrigger = New-ScheduledTaskTrigger -Daily -At 06am
|
||||
Set-ScheduledTask -TaskName "Winget-AutoUpdate" -Trigger $tasktrigger
|
||||
$ChangedSettings++
|
||||
}
|
||||
|
||||
if ($ChangedSettings -gt 0) {
|
||||
Write-Log "Changed settings: $ChangedSettings" "Yellow"
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue