Files
Clint Dovholuk 2f7e53f02c Allow registry overrides.conflict.free (#992)
* feat: bump dependencies (NuGet 8 -> 10, NLog 5 -> 6)

* feat: shared IPC data structures for policy state

* feat: registry policy reader with WMI watcher

* feat: monitor service policy enforcement, maintenance window, deferred install

* feat: UI policy state propagation, locks, deferred-install + sentinel UX fix

* feat: ADMX/ADML templates, admin guide, helper script, test runbook

* chore: build tooling, MSI SHA256, version bump, release notes

* more reworking around the adml/admx/md

* build and upload ADMX/ADML admin templates zip

* updates from looking at / testing GPO UI

* missed the prepare-for-tests ps1

* add boms to all ps1's just in case

* update test-run for more vebosity to allow humans to understand

* more updates to release notes

* Fix alignment on "from" label for maintenance window

* Remove arrow pointing to task bar

* Remove unused selection changed stub

* Ensure logical hour value is passed to maintenance window start/end

* Fix invalid URL error not showing - ensure maintenance start/end time errors return correctly

Change variable names

* reworking new-upcoming-releasenotes

* publish admin templates zip + sha256 sidecar to GitHub release, update release note

* add tatooing words

* reword clamping words

---------

Co-authored-by: Christopher Britton <christopher.l.britton@outlook.com>
2026-05-06 09:14:57 -04:00

83 lines
4.9 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<!--
The UpdateTimer setting controls how often the monitor will check for updates. This value cannot be set lower
than the default of 10 minutes, or "0:0:10:0". If set lower than ten (10) minutes, ten (10) minutes will be used instead.
You can set this value to an obnoxiously huge value and effectively never receive an update automatically. To
accomplish that use something like "10000:0:0:0" (10000 days)
Format for UpdateTimer is "days:hours:minutes:seconds" - none of the values can exceed the normal range of each tuple.
For example this is invalid: "0:0:60:0" because 60 is > 59. To represent every hour you would use "0:1:0:0"
This example shows a value that would check for updates every one hour, two minutes and three seconds
<add key="UpdateTimer" value="0:1:2:3"/>
If changing, the operation should remain high such as "0:1:0:0" (every hour) or "1:0:0:0" (every day)
-->
<add key="UpdateTimer" value="0:0:10:0" />
<!--
The InstallationReminder is duration between reminders sent to clients. This field will default to one (1) day as shown.
Format for InstallationReminder is "days:hours:minutes:seconds" - none of the values can exceed the normal range of each tuple.
When an installation is detected, the user will be nagged every on this interval until the update is completed. This timer
and nagging will be automatic and any clients that attach will get a notification first immediately when attaching to the
service. After that they will get a nag reminder based on when the update was published.
This duration probably should not be smaller than the UpdateTimer. If a value is provided that is smaller than the UpdateTimer.
If the value is smaller than the UpdateTimer duration, it will nag the user every time the update check detects a new udpate.
It is recommended to keep this value some multiple of the UpdateTimer.
-->
<add key="InstallationReminder" value="1:0:0:0" />
<!--
The InstallationCritical setting is the duration in days, hours, minutes when the installation is considered critical.
When considered critical, the update will be automatically applied.
Format for InstallationReminder is "days:hours:minutes:seconds" - none of the values can exceed the normal range of each tuple.
The default will be seven (7) days as shown below. After seven (7) days if the software has not been upgraded it will
attempt to upgrade automatically and immediately without user interaction.
The InstallationCritical field can be set to any value desired, and *CAN* be set to a value lower than the InstallationReminder
and can be set as low as zero (0). Setting this field to zero (0) will effectively treat every update as immediately
critical, and the update will begin as soon as an update is detected. **No** grace period will be provided for the user.
It is recommended that this value be some large value multiple of the UpdateTimer. The default of seven (7) days is
1000x the default UpdateTimer (1008 to be precise).
-->
<add key="InstallationCritical" value="7:0:0:0" />
<add key="ClientSettingsProvider.ServiceUri" value="" />
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
<system.web>
<membership defaultProvider="ClientAuthenticationMembershipProvider">
<providers>
<add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" />
</providers>
</membership>
<roleManager defaultProvider="ClientRoleProvider" enabled="true">
<providers>
<add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" />
</providers>
</roleManager>
</system.web>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.6.0" newVersion="4.1.6.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>