UpdateEverything.psd1

@{
    RootModule        = 'UpdateEverything.psm1'
    ModuleVersion     = '1.0.0'
    GUID              = 'e4e1f3eb-5967-4311-94af-c650fe192e95'
    Author            = 'Brian Kronberg'
    Copyright         = '(c) 2026 Brian Kronberg. Released under the MIT License.'
    Description       = 'Updates a Windows machine through every package manager and update channel it can find, running each as an isolated step so one failure does not stop the rest. Covers winget, the Microsoft Store, Windows Update, Microsoft 365 Apps, Defender, PowerShell modules, npm, pipx, uv, Chocolatey, Scoop, rustup, .NET tools and more. Can register itself as a scheduled task with toast notifications.'

    # 5.1 is the floor because the script has always supported Windows PowerShell,
    # and a maintenance tool that cannot run on a machine before it has been
    # updated is not much use.
    PowerShellVersion = '5.1'

    # Declared so the gallery can filter on it, and so a Core-only or
    # Desktop-only consumer is told before installing rather than after.
    CompatiblePSEditions = @('Desktop', 'Core')

    FunctionsToExport = @(
        'Update-Everything'
        'Register-UpdateEverythingTask'
        'Unregister-UpdateEverythingTask'
        'Get-UpdateEverythingTask'
        'Test-PendingReboot'
    )
    CmdletsToExport   = @()
    VariablesToExport = @()
    AliasesToExport   = @('Update-All')

    PrivateData = @{
        PSData = @{
            Tags         = @('Windows', 'Update', 'Maintenance', 'winget', 'WindowsUpdate', 'Chocolatey', 'Scoop', 'ScheduledTask', 'PSEdition_Desktop', 'PSEdition_Core')
            LicenseUri   = 'https://github.com/briankronberg/UpdateEverything/blob/main/LICENSE'
            ProjectUri   = 'https://github.com/briankronberg/UpdateEverything'
            ReleaseNotes = '# 1.0.0
 
First release. Updates a Windows machine through every package manager and
update channel it can find, running each as an isolated step so one failure
does not stop the rest.
 
## Commands
 
* Update-Everything runs the update pass and returns a result object rather
  than exiting, so calling it from a session does not end that session. A
  scheduled task turns FailedCount into an exit code itself.
* Register-UpdateEverythingTask, Get-UpdateEverythingTask and
  Unregister-UpdateEverythingTask manage the scheduled task.
* Test-PendingReboot reports whether Windows is waiting on a restart, and names
  what is holding it.
 
## Consent
 
Nothing is installed for the first time without permission. -AllowInstall
approves in advance; an interactive run asks and defaults to No; a
non-interactive run declines and reports the step as skipped.
 
## Running unelevated
 
Elevation is checked before it is requested, so a standard user, a machine with
UAC switched off, or an MSIX PowerShell that Windows will not run elevated each
get an explanation instead of a UAC prompt that cannot succeed. -SkipElevation
runs the steps that do not need administrator rights. Logging starts before the
elevation decision, so a run that declines to start still leaves a log.
 
## Also in this release
 
* Optional toast notifications through BurntToast, including an urgent restart
  notice that breaks through Focus Assist.
* -UpdateSelf reinstalls the module from the main branch on GitHub.
* Per-run step logs and transcripts, pruned by -LogRetentionDays.
* Windows PowerShell 5.1 and PowerShell 7 are both supported. Parameters absent
  from the PowerShellGet 1.0.0.1 that Windows ships are probed rather than
  assumed.
'

        }
    }
}