Finally a GPO List Array that works with -contains

pull/263/head
KnifMelti 2023-01-20 03:59:27 +01:00
parent a6e1a5030a
commit e518369851
3 changed files with 32 additions and 4 deletions

View File

@ -197,6 +197,11 @@ if (Test-Network) {
$toSkip = Get-ExcludedApps
}
#Fix the array if GPO List!
if ($GPOList) {
$toSkip = $toSkip.Data
}
#Get outdated Winget packages
Write-Log "Checking application updates on Winget Repository..." "yellow"
$outdated = Get-WingetOutdatedApps
@ -231,7 +236,7 @@ if (Test-Network) {
if ($UseWhiteList) {
#For each app, notify and update
foreach ($app in $outdated) {
if (($toUpdate -match $app.Id) -and $($app.Version) -ne "Unknown") {
if (($toUpdate -contains $app.Id) -and $($app.Version) -ne "Unknown") {
Update-App $app
}
#if current app version is unknown
@ -248,7 +253,7 @@ if (Test-Network) {
else {
#For each app, notify and update
foreach ($app in $outdated) {
if (-not ($toSkip -match $app.Id) -and $($app.Version) -ne "Unknown") {
if (-not ($toSkip -contains $app.Id) -and $($app.Version) -ne "Unknown") {
Update-App $app
}
#if current app version is unknown

View File

@ -4,7 +4,19 @@ function Get-ExcludedApps {
if ($GPOList) {
return Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Romanitho\Winget-AutoUpdate\BlackList"
$Key = 'HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Romanitho\Winget-AutoUpdate\BlackList\'
$ValueNames = (Get-Item -Path "HKLM:\SOFTWARE\Policies\Romanitho\Winget-AutoUpdate\BlackList").Property
foreach ($ValueName in $ValueNames) {
$AppIDs = [Microsoft.Win32.Registry]::GetValue($Key, $ValueName, $false)
[PSCustomObject]@{
Value = $ValueName
Data = $AppIDs
}
}
return $AppIDs
}
elseif (Test-Path "$WorkingDir\excluded_apps.txt") {

View File

@ -4,7 +4,18 @@ function Get-IncludedApps {
if ($GPOList) {
return Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Romanitho\Winget-AutoUpdate\WhiteList"
$Key = 'HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Romanitho\Winget-AutoUpdate\WhiteList\'
$ValueNames = (Get-Item -Path "HKLM:\SOFTWARE\Policies\Romanitho\Winget-AutoUpdate\WhiteList").Property
foreach ($ValueName in $ValueNames) {
$AppIDs = [Microsoft.Win32.Registry]::GetValue($Key, $ValueName, $false)
[PSCustomObject]@{
Value = $ValueName
Data = $AppIDs
}
}
return $AppIDs
}
elseif (Test-Path "$WorkingDir\included_apps.txt") {