Skip to content

Commit

Permalink
refractor Windows Update Tab
Browse files Browse the repository at this point in the history
- move update presets to smaller collumn
- add new collumn for windows update manager
- add datagrid
- add datagrid style
  • Loading branch information
MyDrift-user committed Mar 3, 2025
1 parent 8a0e0c7 commit eea96f5
Show file tree
Hide file tree
Showing 3 changed files with 307 additions and 72 deletions.
1 change: 1 addition & 0 deletions functions/public/Invoke-WPFButton.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -61,5 +61,6 @@ function Invoke-WPFButton {
"WPFWinUtilInstallPSProfile" {Invoke-WinUtilInstallPSProfile}
"WPFWinUtilUninstallPSProfile" {Invoke-WinUtilUninstallPSProfile}
"WPFWinUtilSSHServer" {Invoke-WPFSSHServer}
"WPFScanUpdates" {Invoke-WPFScanUpdates}
}
}
50 changes: 50 additions & 0 deletions functions/public/Invoke-WPFScanUpdates.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
function Invoke-WPFScanUpdates {


Invoke-WPFRunspace -DebugPreference $DebugPreference -ScriptBlock {
# Check if the PSWindowsUpdate module is installed
if (-not (Get-Module -ListAvailable -Name PSWindowsUpdate)) {
try {
Write-Host "PSWindowsUpdate module not found. Attempting to install..."
Install-Module -Name PSWindowsUpdate -Force -Scope CurrentUser
Write-Host "PSWindowsUpdate module installed successfully."
}
catch {
Write-Error "Failed to install PSWindowsUpdate module: $_"
return
}
}

# Import the module
try {
Import-Module PSWindowsUpdate -ErrorAction Stop
Write-Host "PSWindowsUpdate module imported successfully."
}
catch {
Write-Error "Failed to import PSWindowsUpdate module: $_"
return
}

try {
Write-Host "Clearing updates list..."
$sync.form.Dispatcher.Invoke([action] { $sync["WPFUpdatesList"].Items.Clear() })
Write-Host "Scanning for Windows updates..."
$updates = Get-WindowsUpdate -ErrorAction Stop
Write-Host "Found $($updates.Count) updates."

$sync.form.Dispatcher.Invoke([action] {
foreach ($update in $updates) {
$item = New-Object PSObject -Property @{
KB = $update.KB
Size = $update.Size
Title = $update.Title -replace '\s*\(KB\d+\)', '' -replace '\s*KB\d+\b', '' # Remove KB number from title, first in parentheses, then standalone
Status = "Not Installed"
}
$sync["WPFUpdatesList"].Items.Add($item)
}
})
} catch {
Write-Error "Error scanning for updates: $_"
}
}
}
Loading

0 comments on commit eea96f5

Please sign in to comment.