File tree Expand file tree Collapse file tree 4 files changed +54
-19
lines changed
Expand file tree Collapse file tree 4 files changed +54
-19
lines changed Original file line number Diff line number Diff line change 1+ <#
2+ . SYNOPSIS
3+ Returns a list of modules that have upgrades available.
4+
5+ . FUNCTIONALITY
6+ PowerShell Modules
7+
8+ . LINK
9+ Get-ModuleScope.ps1
10+
11+ . EXAMPLE
12+ Get-OutdatedModules.ps1
13+
14+ Name Scope CurrentVersion AvailableVersion
15+ ---------- -------- --------------- ----------------
16+ PSReadLine AllUsers 2.3.6 2.4.5
17+ ThreadJob AllUsers 2.0.7 2.1.0
18+ #>
19+
20+ # Requires -Version 7
21+ [CmdletBinding ()] Param ()
22+ Get-Module - ListAvailable |
23+ Group-Object Name |
24+ ForEach-Object - Parallel {
25+ $name , $group = $_.Name , $_.Group
26+ try
27+ {[pscustomobject ]@ {
28+ Name = $name
29+ Scope = Get-ModuleScope.ps1 $name | Select-Object - ExpandProperty Scope
30+ CurrentVersion = $group | Measure-Object Version - Maximum | Select-Object - ExpandProperty Maximum
31+ AvailableVersion = Find-Module $name - ErrorAction Stop | Select-Object - ExpandProperty Version
32+ }}
33+ catch {}
34+ } |
35+ Where-Object {$_.CurrentVersion -lt $_.AvailableVersion }
Original file line number Diff line number Diff line change 8686
8787 function Get-PSModulesTest
8888 {{
89- if (Get-Module - ListAvailable |
90- ForEach-Object - Parallel {
91- Find-Module $_.Name - EA Ignore |
92- Where-Object Version -gt $_.Version
93- } - ThrottleLimit 6 |
94- Select-Object - First 1 ) {' psmodules' }
89+ if (Get-OutdatedModules.ps1 | Select-Object - First 1 ) {' psmodules' }
9590 }}
9691
9792 filter Format-Status
Original file line number Diff line number Diff line change 11<#
22. SYNOPSIS
3- Uninstalls old module versions.
3+ Uninstalls old module versions (ignoring old Windows PowerShell modules) .
44
55. FUNCTIONALITY
66PowerShell Modules
7+
8+ . EXAMPLE
9+ Uninstall-OldModules.ps1
10+
11+ Cleans up redundant old modules.
712#>
813
914# Requires -Version 3
10- [CmdletBinding (ConfirmImpact = ' High' , SupportsShouldProcess = $true )][ OutputType ([ void ])] Param (
15+ [CmdletBinding (ConfirmImpact = ' High' , SupportsShouldProcess = $true )] Param (
1116# Indicates the modules should be forced to uninstall.
1217[switch ] $Force
1318)
1419
15- Get-Module - List |
20+ Get-Module - ListAvailable |
1621 Where-Object {$PSVersionTable.PSVersion -lt [version ]' 6.0' -or $_.ModuleBase -notlike ' *\WindowsPowerShell\*' } |
1722 Group-Object Name |
1823 Where-Object Count -gt 1 |
Original file line number Diff line number Diff line change @@ -4,17 +4,17 @@ Cleans up old modules.
44
55. FUNCTIONALITY
66PowerShell Modules
7+
8+ . LINK
9+ Uninstall-OldModules.ps1
10+
11+ . EXAMPLE
12+ Update-Modules.ps1
13+
14+ Updates installed modules and purges old versions.
715#>
816
917# Requires -Version 3
10- [CmdletBinding ()][OutputType ([void ])] Param ()
11-
18+ [CmdletBinding ()] Param ()
1219Update-Module - Force
13- foreach ($module in Get-Module - List | Group-Object Name | Where-Object Count -gt 1 )
14- {
15- $newestversion = $module.Group.Version | Sort-Object - Descending | Select-Object - First 1
16- foreach ($oldmodule in $module.Group | Where-Object Version -lt $newestversion )
17- {
18- Uninstall-Module $oldmodule.Name - RequiredVersion $oldmodule.Version
19- }
20- }
20+ Uninstall-OldModules.ps1
You can’t perform that action at this time.
0 commit comments