PsPatchMyPC
1.0.0
Enterprise application patching module integrating winget with PatchMyPC-style orchestration and Nudge-inspired progressive enforcement. Supports deferrals, notifications, dual logging, and orchestrator-agnostic deployment.
Minimum PowerShell version
5.1
Installation Options
Owners
Copyright
(c) 2024 Thomas Tyson. MIT License.
Package Details
Author(s)
- Thomas Tyson
Tags
Patching Winget Enterprise Updates Intune FleetDM SCCM Notifications Deferrals Compliance
Functions
Get-PatchStatus Start-PatchCycle Get-PatchMyPCConfig Initialize-Winget Test-WingetAvailable Get-WingetUpdates Install-WingetUpdate Show-PatchNotification Show-DeferralDialog Show-ToastNotification Register-PatchSchedule Unregister-PatchSchedule Get-PatchSchedule Get-DeferralState Set-PatchDeferral Reset-DeferralState Test-DeferralAllowed Get-DeferralPhase Export-PatchReport Get-PatchCompliance Get-ManagedApplications Add-ManagedApplication Remove-ManagedApplication Get-PatchMyPCLogs
Dependencies
This module has no dependencies.
Release Notes
## Version 1.0.0
### Initial Release
- Winget integration with auto-installation support
- Progressive deferral system (Nudge-inspired)
- WPF notification dialogs with countdown timers
- BurntToast integration for toast notifications
- Dual logging (CMTrace format + Windows Event Log)
- Registry-based state persistence
- Scheduled task management (SYSTEM + User context)
- Enterprise application catalog
- Intune/FleetDM/SCCM compatible
- Compliance reporting and JSON output
### Environment Variables
- `PSPMPC_LOG_PATH`: Custom log directory
- `PSPMPC_CONFIG_PATH`: Custom config location
- `PSPMPC_EVENT_LOG`: Enable/disable Event Log (true/false)
- `PSPMPC_WINGET_SOURCE`: Private winget source URL
FileList
- PsPatchMyPC.nuspec
- Public\Get-PatchStatus.ps1
- Private\Core\Get-AvailableUpdate.ps1
- Private\Notification\Invoke-AsCurrentUser.ps1
- Public\Initialize-Winget.ps1
- PsPatchMyPC.psd1
- Private\Core\Get-InstalledApplication.ps1
- Private\Notification\Show-WPFDialog.ps1
- Public\Register-PatchSchedule.ps1
- PsPatchMyPC.psm1
- Private\Core\Install-ApplicationUpdate.ps1
- Private\State\Get-StateFromRegistry.ps1
- Public\Set-PatchDeferral.ps1
- Classes\PatchMyPCClasses.ps1
- Private\Core\Test-ConflictingProcess.ps1
- Private\State\Set-StateToRegistry.ps1
- Public\Show-PatchNotification.ps1
- Config\applications.json
- Private\Logging\Write-EventLogEntry.ps1
- Public\Export-PatchReport.ps1
- Public\Start-PatchCycle.ps1
- Config\config.psd1
- Private\Logging\Write-PatchLog.ps1
- Public\Get-PatchMyPCConfig.ps1
- en-US\about_PsPatchMyPC.help.txt