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

GPO Management, error handling, log rotation and more... #257

Merged
merged 86 commits into from
Jan 17, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
99345b7
Started with admx/adml and Policies Management
KnifMelti Dec 27, 2022
649f232
Write only if $WAUPolicies differs from $WAUConfig
KnifMelti Dec 27, 2022
50dcf34
README, ADMX/ADML
KnifMelti Dec 27, 2022
daa2e9e
Check only if $WAUPolicies exists
KnifMelti Dec 27, 2022
6964d00
ListPath/ModsPath done
KnifMelti Dec 28, 2022
4e660e3
A few steps more...
KnifMelti Dec 28, 2022
96b1900
NotificationLevel done
KnifMelti Dec 28, 2022
51dfd99
Message in log
KnifMelti Dec 28, 2022
ba6ed97
Text and List/Mods Path error handling
KnifMelti Dec 28, 2022
e2c446a
Optimized if run as System...
KnifMelti Dec 28, 2022
ce3a8f3
WhiteList handling with Conf. after Pol. change...
KnifMelti Dec 28, 2022
6146dad
Count changed settings in log
KnifMelti Dec 28, 2022
db7b076
Reverted.
KnifMelti Dec 28, 2022
f758f7e
Counter and adopting all settings
KnifMelti Dec 29, 2022
4491524
Lists/Mods Path error handling
KnifMelti Dec 29, 2022
937e281
Managed Update Frequency for the Scheduler
KnifMelti Dec 29, 2022
633da29
Fixes
KnifMelti Dec 29, 2022
87cf2af
Mostly done
KnifMelti Dec 30, 2022
a6b92b4
WAU_UpdatesAtTime now read and saved
KnifMelti Dec 30, 2022
c712872
$UpdatesAtTime now managed in Policies too
KnifMelti Dec 30, 2022
32c92e6
Text changes/improvements in ADMX/ADML begins...
KnifMelti Dec 30, 2022
06ef630
Ongoing...
KnifMelti Dec 30, 2022
071b6b1
ADMX/ADML done!
KnifMelti Dec 30, 2022
94f26b2
Documented
KnifMelti Dec 30, 2022
55fb287
Image
KnifMelti Dec 30, 2022
57733fb
Text
KnifMelti Dec 30, 2022
ab215d8
UserContext and fixes to settings
KnifMelti Dec 30, 2022
17e9579
Forgot to include changes...
KnifMelti Dec 31, 2022
0673be5
Shortcuts Policies and som critical fixes
KnifMelti Dec 31, 2022
e01f428
Text
KnifMelti Dec 31, 2022
a35c803
Reverted an accidential text deletion
KnifMelti Dec 31, 2022
395a94c
Text
KnifMelti Dec 31, 2022
ad73331
Log also Changed settings if None
KnifMelti Dec 31, 2022
bc66d8f
Text and Image
KnifMelti Dec 31, 2022
13ff435
Updates at Time now active standalone + fixes
KnifMelti Dec 31, 2022
5a649f3
Final fix ;)
KnifMelti Dec 31, 2022
af12a09
Just better text for Disable WAU AutoUpdate...
KnifMelti Dec 31, 2022
91079f6
Better text
KnifMelti Dec 31, 2022
4637815
No instead of Yes...
KnifMelti Dec 31, 2022
4c3828c
Negations...
KnifMelti Dec 31, 2022
7124aa7
Nesovj changed username + text/image
KnifMelti Dec 31, 2022
b50b6e7
s-
KnifMelti Dec 31, 2022
fb9117b
$NativeUninstallString in Mods-Functions too
KnifMelti Dec 31, 2022
637f210
Test-Path
KnifMelti Jan 1, 2023
6659404
Corrected
KnifMelti Jan 1, 2023
276c20a
Text
KnifMelti Jan 1, 2023
a49d852
Spelling
KnifMelti Jan 1, 2023
f460b26
Add-ModsReg/Remove-ModsReg in Template/Functions
KnifMelti Jan 3, 2023
f087b13
Example delete
KnifMelti Jan 3, 2023
9092573
Data instead of Value
KnifMelti Jan 3, 2023
a9868e3
Key if not existing
KnifMelti Jan 3, 2023
feaaa65
Started adoption of Test-ModsPath for IIS
GAJ-san Jan 3, 2023
d703965
List-/ModsPath rewritten, now validated on Apache
KnifMelti Jan 3, 2023
4b0165b
Linebreak
KnifMelti Jan 3, 2023
a248215
Done, ISS must be confed to handle ++ in filename!
KnifMelti Jan 4, 2023
407efdd
Forgot test deletions...
KnifMelti Jan 5, 2023
6301fd9
Remove file/directory in Mod Template/Functions
KnifMelti Jan 5, 2023
5311331
Delete entire Key in Mod Template/Functions too
KnifMelti Jan 5, 2023
91e788e
Multiple App uninstall in Mod Template/Functions
GAJ-san Jan 5, 2023
7db30e5
Fix
KnifMelti Jan 5, 2023
e302d81
README
KnifMelti Jan 5, 2023
c35f337
Text
KnifMelti Jan 5, 2023
134c7fb
Missed spaces...
KnifMelti Jan 5, 2023
39de549
Better explanation
KnifMelti Jan 6, 2023
d7d1bf1
Text
KnifMelti Jan 6, 2023
6f7e0d4
Last text...
KnifMelti Jan 6, 2023
f194b63
...and last deletion - done!
KnifMelti Jan 6, 2023
abf5b8e
Punctuation
KnifMelti Jan 6, 2023
5889444
Mods README clarified
KnifMelti Jan 6, 2023
aacf0ac
Line Break
KnifMelti Jan 6, 2023
11ee64e
Separate local White/Black list checking
KnifMelti Jan 8, 2023
72bcf77
List/ Mods Path critical corrections
KnifMelti Jan 8, 2023
237e9c3
Copy file/directory in Mod Template/Functions
KnifMelti Jan 8, 2023
2839500
Run App in Mods Template/Functions too
KnifMelti Jan 9, 2023
50263f7
mod\bins for placing MsiZap.exe etc. in
KnifMelti Jan 10, 2023
a3cd22a
WinGet MSIXBundle v1.3.2691
GAJ-san Jan 10, 2023
4be19a4
Mods Template/Function Grant-ModsPath ($GrantPath)
KnifMelti Jan 10, 2023
09db5c3
Fix
GAJ-san Jan 11, 2023
2fe4bae
LogRotation (max 3, max 1MB)
KnifMelti Jan 12, 2023
bc7dd12
Parameters, README, and fixes
KnifMelti Jan 13, 2023
4d0fc6e
GPO and fixes for Max-Logfiles/LogSize
KnifMelti Jan 13, 2023
c4834c0
Optimized logging of Rotation/Policies
KnifMelti Jan 13, 2023
78a922a
New GPO image (Log:)
KnifMelti Jan 13, 2023
328bf3e
GPO log only if changed or not
KnifMelti Jan 14, 2023
b37858f
No LB first in log if Log Rotating...
KnifMelti Jan 15, 2023
7dc71b5
Sort winget_system_apps.txt
KnifMelti Jan 16, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions Policies/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
### Add the administrative template to an individual computer
1. Copy the "**WAU.admx**" file to your Policy Definition template folder. (Example: `C:\Windows\PolicyDefinitions`)
2. Copy the "**WAU.adml**" file to the matching language folder in your Policy Definition folder. (Example: `C:\Windows\PolicyDefinitions\en-US`)

### Add the administrative template to Active Directory
1. On a domain controller or workstation with [RSAT](https://learn.microsoft.com/en-us/troubleshoot/windows-server/system-management-components/remote-server-administration-tools), go to the **PolicyDefinition** folder (also known as the _Central Store_) on any domain controller for your domain.
2. Copy the "**WAU.admx**" file to the PolicyDefinition folder. (Example: `%systemroot%\sysvol\domain\policies\PolicyDefinitions`)
3. Copy the "**WAU.adml**" file to the matching language folder in the PolicyDefinition folder. Create the folder if it doesn't already exist. (Example: `%systemroot%\sysvol\domain\policies\PolicyDefinitions\EN-US`)
4. If your domain has more than one domain controller, the new [ADMX files](https://learn.microsoft.com/en-us/troubleshoot/windows-client/group-policy/create-and-manage-central-store) will be replicated to them at the next domain replication interval.
337 changes: 337 additions & 0 deletions Policies/WAU.admx
Original file line number Diff line number Diff line change
@@ -0,0 +1,337 @@
<?xml version="1.0" encoding="utf-8"?>
<policyDefinitions revision="4.4" schemaVersion="1.0">
<policyNamespaces>
<target prefix="WAU" namespace="Romanitho.Policies.WAU"/>
<using prefix="Romanitho" namespace="Romanitho.Policies"/>
</policyNamespaces>
<resources minRequiredRevision="4.4"/>
<supportedOn>
<definitions>
<definition name="SUPPORTED_WAU_1_15_3" displayName="$(string.SUPPORTED_WAU_1_15_3)"/>
</definitions>
</supportedOn>
<categories>
<category displayName="$(string.WAU)" name="WAU">
<parentCategory ref="Romanitho:Cat_Romanitho"/>
</category>
</categories>
<policies>
<policy name="ActivateGPOManagement_Enable" class="Machine" displayName="$(string.ActivateGPOManagement_Name)" explainText="$(string.ActivateGPOManagement_Explain)" key="Software\Policies\Romanitho\Winget-AutoUpdate" valueName="WAU_ActivateGPOManagement">
<parentCategory ref="WAU"/>
<supportedOn ref="WAU:SUPPORTED_WAU_1_15_3"/>
<enabledValue>
<decimal value="1" />
</enabledValue>
<disabledValue>
<decimal value="0" />
</disabledValue>
</policy>
<policy name="BypassListForUsers_Enable" class="Machine" displayName="$(string.BypassListForUsers_Name)" explainText="$(string.BypassListForUsers_Explain)" key="Software\Policies\Romanitho\Winget-AutoUpdate" valueName="WAU_BypassListForUsers">
<parentCategory ref="WAU"/>
<supportedOn ref="WAU:SUPPORTED_WAU_1_15_3"/>
<enabledValue>
<decimal value="1" />
</enabledValue>
<disabledValue>
<decimal value="0" />
</disabledValue>
</policy>
<policy name="DisableAutoUpdate_Enable" class="Machine" displayName="$(string.DisableAutoUpdate_Name)" explainText="$(string.DisableAutoUpdate_Explain)" key="Software\Policies\Romanitho\Winget-AutoUpdate" valueName="WAU_DisableAutoUpdate">
<parentCategory ref="WAU"/>
<supportedOn ref="WAU:SUPPORTED_WAU_1_15_3"/>
<enabledValue>
<decimal value="1" />
</enabledValue>
<disabledValue>
<decimal value="0" />
</disabledValue>
</policy>
<policy name="DoNotRunOnMetered_Enable" class="Machine" displayName="$(string.DoNotRunOnMetered_Name)" explainText="$(string.DoNotRunOnMetered_Explain)" key="Software\Policies\Romanitho\Winget-AutoUpdate" valueName="WAU_DoNotRunOnMetered">
<parentCategory ref="WAU"/>
<supportedOn ref="WAU:SUPPORTED_WAU_1_15_3"/>
<enabledValue>
<decimal value="0" />
</enabledValue>
<disabledValue>
<decimal value="1" />
</disabledValue>
</policy>
<policy name="UpdatePrerelease_Enable" class="Machine" displayName="$(string.UpdatePrerelease_Name)" explainText="$(string.UpdatePrerelease_Explain)" key="Software\Policies\Romanitho\Winget-AutoUpdate" valueName="WAU_UpdatePrerelease">
<parentCategory ref="WAU"/>
<supportedOn ref="WAU:SUPPORTED_WAU_1_15_3"/>
<enabledValue>
<decimal value="1" />
</enabledValue>
<disabledValue>
<decimal value="0" />
</disabledValue>
</policy>
<policy name="UseWhiteList_Enable" class="Machine" displayName="$(string.UseWhiteList_Name)" explainText="$(string.UseWhiteList_Explain)" key="Software\Policies\Romanitho\Winget-AutoUpdate" valueName="WAU_UseWhiteList">
<parentCategory ref="WAU"/>
<supportedOn ref="WAU:SUPPORTED_WAU_1_15_3"/>
<enabledValue>
<decimal value="1" />
</enabledValue>
<disabledValue>
<decimal value="0" />
</disabledValue>
</policy>
<policy name="ListPath_Enable" class="Machine" displayName="$(string.ListPath_Name)" explainText="$(string.ListPath_Explain)" key="Software\Policies\Romanitho\Winget-AutoUpdate" presentation="$(presentation.ListPath)" >
<parentCategory ref="WAU"/>
<supportedOn ref="WAU:SUPPORTED_WAU_1_15_3"/>
<elements>
<text id="ListPath" valueName="WAU_ListPath" />
</elements>
</policy>
<policy name="ModsPath_Enable" class="Machine" displayName="$(string.ModsPath_Name)" explainText="$(string.ModsPath_Explain)" key="Software\Policies\Romanitho\Winget-AutoUpdate" presentation="$(presentation.ModsPath)" >
<parentCategory ref="WAU"/>
<supportedOn ref="WAU:SUPPORTED_WAU_1_15_3"/>
<elements>
<text id="ModsPath" valueName="WAU_ModsPath" />
</elements>
</policy>
<policy name="NotificationLevel_Enable" class="Machine" displayName="$(string.NotificationLevel_Name)" explainText="$(string.NotificationLevel_Explain)" key="Software\Policies\Romanitho\Winget-AutoUpdate" presentation="$(presentation.NotificationLevel)">
<parentCategory ref="WAU"/>
<supportedOn ref="WAU:SUPPORTED_WAU_1_15_3"/>
<elements>
<enum id="NotificationLevel" valueName="WAU_NotificationLevel">
<item displayName="$(string.NotificationLevel_Full)">
<value>
<string>Full</string>
</value>
</item>
<item displayName="$(string.NotificationLevel_SuccessOnly)">
<value>
<string>SuccessOnly</string>
</value>
</item>
<item displayName="$(string.NotificationLevel_None)">
<value>
<string>None</string>
</value>
</item>
</enum>
</elements>
</policy>
<policy name="UpdatesInterval_Enable" class="Machine" displayName="$(string.UpdatesInterval_Name)" 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</string>
</value>
</item>
<item displayName="$(string.UpdatesInterval_BiDaily)">
<value>
<string>BiDaily</string>
</value>
</item>
<item displayName="$(string.UpdatesInterval_Weekly)">
<value>
<string>Weekly</string>
</value>
</item>
<item displayName="$(string.UpdatesInterval_BiWeekly)">
<value>
<string>BiWeekly</string>
</value>
</item>
<item displayName="$(string.UpdatesInterval_Monthly)">
<value>
<string>Monthly</string>
</value>
</item>
<item displayName="$(string.UpdatesInterval_Never)">
<value>
<string>Never</string>
</value>
</item>
</enum>
</elements>
</policy>
<policy name="UpdatesAtLogon_Enable" class="Machine" displayName="$(string.UpdatesAtLogon_Name)" explainText="$(string.UpdatesAtLogon_Explain)" key="Software\Policies\Romanitho\Winget-AutoUpdate" valueName="WAU_UpdatesAtLogon">
<parentCategory ref="WAU"/>
<supportedOn ref="WAU:SUPPORTED_WAU_1_15_3"/>
<enabledValue>
<decimal value="1" />
</enabledValue>
<disabledValue>
<decimal value="0" />
</disabledValue>
</policy>
<policy name="UpdatesAtTime_Enable" class="Machine" displayName="$(string.UpdatesAtTime_Name)" explainText="$(string.UpdatesAtTime_Explain)" presentation="$(presentation.UpdatesAtTime)" key="Software\Policies\Romanitho\Winget-AutoUpdate">
<parentCategory ref="WAU"/>
<supportedOn ref="WAU:SUPPORTED_WAU_1_15_3"/>
<elements>
<enum id="UpdatesAtTime" valueName="WAU_UpdatesAtTime">
<item displayName="$(string.UpdatesAtTime01)">
<value>
<string>01:00:00</string>
</value>
</item>
<item displayName="$(string.UpdatesAtTime02)">
<value>
<string>02:00:00</string>
</value>
</item>
<item displayName="$(string.UpdatesAtTime03)">
<value>
<string>03:00:00</string>
</value>
</item>
<item displayName="$(string.UpdatesAtTime04)">
<value>
<string>04:00:00</string>
</value>
</item>
<item displayName="$(string.UpdatesAtTime05)">
<value>
<string>05:00:00</string>
</value>
</item>
<item displayName="$(string.UpdatesAtTime06)">
<value>
<string>06:00:00</string>
</value>
</item>
<item displayName="$(string.UpdatesAtTime07)">
<value>
<string>07:00:00</string>
</value>
</item>
<item displayName="$(string.UpdatesAtTime08)">
<value>
<string>08:00:00</string>
</value>
</item>
<item displayName="$(string.UpdatesAtTime09)">
<value>
<string>09:00:00</string>
</value>
</item>
<item displayName="$(string.UpdatesAtTime10)">
<value>
<string>10:00:00</string>
</value>
</item>
<item displayName="$(string.UpdatesAtTime11)">
<value>
<string>11:00:00</string>
</value>
</item>
<item displayName="$(string.UpdatesAtTime12)">
<value>
<string>12:00:00</string>
</value>
</item>
<item displayName="$(string.UpdatesAtTime13)">
<value>
<string>13:00:00</string>
</value>
</item>
<item displayName="$(string.UpdatesAtTime14)">
<value>
<string>14:00:00</string>
</value>
</item>
<item displayName="$(string.UpdatesAtTime15)">
<value>
<string>15:00:00</string>
</value>
</item>
<item displayName="$(string.UpdatesAtTime16)">
<value>
<string>16:00:00</string>
</value>
</item>
<item displayName="$(string.UpdatesAtTime17)">
<value>
<string>17:00:00</string>
</value>
</item>
<item displayName="$(string.UpdatesAtTime18)">
<value>
<string>18:00:00</string>
</value>
</item>
<item displayName="$(string.UpdatesAtTime19)">
<value>
<string>19:00:00</string>
</value>
</item>
<item displayName="$(string.UpdatesAtTime20)">
<value>
<string>20:00:00</string>
</value>
</item>
<item displayName="$(string.UpdatesAtTime21)">
<value>
<string>21:00:00</string>
</value>
</item>
<item displayName="$(string.UpdatesAtTime22)">
<value>
<string>22:00:00</string>
</value>
</item>
<item displayName="$(string.UpdatesAtTime23)">
<value>
<string>23:00:00</string>
</value>
</item>
<item displayName="$(string.UpdatesAtTime24)">
<value>
<string>24:00:00</string>
</value>
</item>
</enum>
</elements>
</policy>
<policy name="UserContext_Enable" class="Machine" displayName="$(string.UserContext_Name)" explainText="$(string.UserContext_Explain)" key="Software\Policies\Romanitho\Winget-AutoUpdate" valueName="WAU_UserContext">
<parentCategory ref="WAU"/>
<supportedOn ref="WAU:SUPPORTED_WAU_1_15_3"/>
<enabledValue>
<decimal value="1" />
</enabledValue>
<disabledValue>
<decimal value="0" />
</disabledValue>
</policy>
<policy name="DesktopShortcut_Enable" class="Machine" displayName="$(string.DesktopShortcut_Name)" explainText="$(string.DesktopShortcut_Explain)" key="Software\Policies\Romanitho\Winget-AutoUpdate" valueName="WAU_DesktopShortcut">
<parentCategory ref="WAU"/>
<supportedOn ref="WAU:SUPPORTED_WAU_1_15_3"/>
<enabledValue>
<decimal value="1" />
</enabledValue>
<disabledValue>
<decimal value="0" />
</disabledValue>
</policy>
<policy name="StartMenuShortcut_Enable" class="Machine" displayName="$(string.StartMenuShortcut_Name)" explainText="$(string.StartMenuShortcut_Explain)" key="Software\Policies\Romanitho\Winget-AutoUpdate" valueName="WAU_StartMenuShortcut">
<parentCategory ref="WAU"/>
<supportedOn ref="WAU:SUPPORTED_WAU_1_15_3"/>
<enabledValue>
<decimal value="1" />
</enabledValue>
<disabledValue>
<decimal value="0" />
</disabledValue>
</policy>
<policy name="MaxLogFiles_Name" class="Machine" displayName="$(string.MaxLogFiles_Name)" explainText="$(string.MaxLogFiles_Explain)" key="Software\Policies\Romanitho\Winget-AutoUpdate" presentation="$(presentation.MaxLogFiles)" >
<parentCategory ref="WAU"/>
<supportedOn ref="WAU:SUPPORTED_WAU_1_15_3"/>
<elements>
<text id="MaxLogFiles" valueName="WAU_MaxLogFiles" />
</elements>
</policy>
<policy name="MaxLogSize_Name" class="Machine" displayName="$(string.MaxLogSize_Name)" explainText="$(string.MaxLogSize_Explain)" key="Software\Policies\Romanitho\Winget-AutoUpdate" presentation="$(presentation.MaxLogSize)" >
<parentCategory ref="WAU"/>
<supportedOn ref="WAU:SUPPORTED_WAU_1_15_3"/>
<elements>
<text id="MaxLogSize" valueName="WAU_MaxLogSize" />
</elements>
</policy>
</policies>
</policyDefinitions>
Loading