|
| 1 | +# UpdateMyWindowsMachine |
| 2 | + |
| 3 | +A modular, production-quality PowerShell solution for automating PowerShell commands to update Microsoft Windows, Microsoft Store, and Microsoft Office; along with some third-party updates (leveraging PatchMyPC). Includes robust configuration, logging, scheduling, and interactive menu support. |
| 4 | + |
1 | 5 | <!-- vscode-markdown-toc --> |
2 | 6 | * [Overview](#Overview) |
3 | 7 | * [Who is the audience of this script?](#Whoistheaudienceofthisscript) |
|
18 | 22 | numbering=false |
19 | 23 | autoSave=true |
20 | 24 | /vscode-markdown-toc-config --> |
21 | | -<!-- /vscode-markdown-toc --># UpdateMyWindowsMachine |
22 | | - |
23 | | -A modular, production-quality PowerShell solution for automating PowerShell commands to update Microsoft Windows, Microsoft Store, and Microsoft Office; along with some third-party updates (leveraging PatchMyPC). Includes robust configuration, logging, scheduling, and interactive menu support. |
24 | | - |
25 | | - |
| 25 | +<!-- /vscode-markdown-toc --> |
26 | 26 |
|
27 | 27 | ## <a name='Overview'></a>Overview |
28 | 28 |
|
@@ -52,15 +52,16 @@ This is primarily for a home/own PC use case, or where you have a very small off |
52 | 52 | - **Microsoft Store App Updates**: Updates Microsoft Store applications using `winget`. |
53 | 53 | - **Microsoft Office Updates**: Detects and updates Microsoft Office installations, closing running Office apps as needed. |
54 | 54 | - **Third-Party App Updates**: Optionally integrates with [Patch My PC Home Updater](https://patchmypc.com/home-updater) to update a wide range of third-party applications. |
| 55 | +- **First-Time Setup Wizard**: Interactive setup for configuration, including scheduling, log management, and update preferences. |
| 56 | +- **Scheduled Task Support**: Easily create or update a Windows Task Scheduler job to run the script automatically on a schedule (daily, weekly, or monthly). |
55 | 57 | - **Configuration** |
56 | 58 | - **Configurable Update Types**: Choose which update types to enable (Windows, Office, Winget, PatchMyPC), and any combination thereof, via a JSON config file or interactive menu. |
57 | 59 | - **Winget Skip List**: Exclude specific apps from being updated by `winget` using a customizable skip list. |
58 | | -- **First-Time Setup Wizard**: Interactive setup for configuration, including scheduling, log management, and update preferences. |
59 | | -- **Robust Logging**: Logs all actions and results to a configurable directory, with retention and archiving options. |
60 | | -- **Scheduled Task Support**: Easily create or update a Windows Task Scheduler job to run the script automatically on a schedule (daily, weekly, or monthly). |
61 | | -- **Auto-Elevation**: Automatically relaunches itself with administrative privileges if required. |
62 | | -- **Error Handling**: Robust and graceful error handling, along with informative log messages for troubleshooting. |
63 | | -- Pester tests for functions |
| 60 | +- **Other features** |
| 61 | + - **Robust Logging**: Logs all actions and results to a configurable directory, with retention and archiving options. |
| 62 | + - **Auto-Elevation**: Automatically relaunches itself with administrative privileges if required. |
| 63 | + - **Error Handling**: Robust and graceful error handling, along with informative log messages for troubleshooting. |
| 64 | + - Pester tests for functions |
64 | 65 |
|
65 | 66 | ## <a name='Requirements'></a>Requirements |
66 | 67 | - PowerShell 5.1+ |
@@ -112,7 +113,8 @@ UpdateMyWindowsMachine/ |
112 | 113 | │ ├── Public/ # Public functions (one per file, exported by the module) |
113 | 114 | │ │ ├── Get-Config.ps1 # Loads and repairs config from disk |
114 | 115 | │ │ ├── Get-PatchMyPCInfo.ps1 # Gets Patch My PC installation info |
115 | | -│ │ ├── Register-WindowsUpdateScheduledTask.ps1 # Schedules/updates Windows Task Scheduler job |
| 116 | +│ │ ├── Register-WindowsUpdateScheduledTask.ps1 |
| 117 | +| | | # Schedules/updates Windows Task Scheduler job |
116 | 118 | │ │ ├── Remove-OldLogs.ps1 # Deletes old log files based on retention policy |
117 | 119 | │ │ ├── Run-AllUpdates.ps1 # Orchestrates all update types (Windows, Office, Store, PatchMyPC) |
118 | 120 | │ │ ├── Save-Config.ps1 # Saves config to disk |
|
0 commit comments