Browse Source

Improved UninstallPCHealthCheck function performance

pull/429/head
Alan Płócieniak 1 year ago
parent
commit
d090e013db
  1. 5
      src/Sophia_Script_for_Windows_10/Module/Sophia.psm1
  2. 5
      src/Sophia_Script_for_Windows_10_PowerShell_7/Module/Sophia.psm1

5
src/Sophia_Script_for_Windows_10/Module/Sophia.psm1

@ -9020,10 +9020,13 @@ public static void Refresh()
function UninstallPCHealthCheck
{
$Folder = (New-Object -ComObject Shell.Application).NameSpace("$env:SystemRoot\Installer")
$Files = [hashtable]::new()
$Folder.Items() | ForEach-Object -Process { $Files.Add($_.Name, $_) } | Out-Null
# Find the necessary .msi with the Subject property equal to "Windows PC Health Check"
foreach ($MSI in @(Get-ChildItem -Path "$env:SystemRoot\Installer" -Filter *.msi -File -Force))
{
$File = $Folder.Items() | Where-Object -FilterScript {$_.Name -eq $MSI.Name}
$name = $Files.Keys | Where-Object -FilterScript { $_ -eq $MSI.Name }
$File = $Files[$name]
# https://learn.microsoft.com/en-us/previous-versions/tn-archive/ee176615(v=technet.10)
# "22" is the "Subject" file property

5
src/Sophia_Script_for_Windows_10_PowerShell_7/Module/Sophia.psm1

@ -9028,10 +9028,13 @@ public static void Refresh()
function UninstallPCHealthCheck
{
$Folder = (New-Object -ComObject Shell.Application).NameSpace("$env:SystemRoot\Installer")
$Files = [hashtable]::new()
$Folder.Items() | ForEach-Object -Process { $Files.Add($_.Name, $_) } | Out-Null
# Find the necessary .msi with the Subject property equal to "Windows PC Health Check"
foreach ($MSI in @(Get-ChildItem -Path "$env:SystemRoot\Installer" -Filter *.msi -File -Force))
{
$File = $Folder.Items() | Where-Object -FilterScript {$_.Name -eq $MSI.Name}
$name = $Files.Keys | Where-Object -FilterScript { $_ -eq $MSI.Name }
$File = $Files[$name]
# https://learn.microsoft.com/en-us/previous-versions/tn-archive/ee176615(v=technet.10)
# "22" is the "Subject" file property

Loading…
Cancel
Save