Private/PowerTreeRegistry/Filtering/Get-RegistryItems.ps1
function Get-RegistryItems { param ( [Parameter(Mandatory=$true)] [string]$RegistryPath, [bool]$DisplayItemCounts = $false, [bool]$SortValuesByType = $false, [bool]$SortDescending = $false, [bool]$UseRegistryDataTypes = $false, [string[]]$Exclude = @(), [string[]]$Include = @() ) # Fixed the typo: was $Exclude.Count -gt 0 -or $Exclude.Count -gt 0 $hasValueFilters = $Include.Count -gt 0 -or $Exclude.Count -gt 0 $hasKeyFilters = $Exclude.Count -gt 0 $regKey = Get-Item -LiteralPath $RegistryPath -ErrorAction SilentlyContinue if (-not $regKey) { return @() } $registryTypeMap = @{ 'String' = 'REG_SZ' 'ExpandString' = 'REG_EXPAND_SZ' 'Binary' = 'REG_BINARY' 'DWord' = 'REG_DWORD' 'MultiString' = 'REG_MULTI_SZ' 'QWord' = 'REG_QWORD' 'Unknown' = 'REG_NONE' } $valueItems = @() if ($regKey.ValueCount -gt 0) { $valueItems = Get-ProcessedRegistryValues -RegKey $regKey -RegistryTypeMap $registryTypeMap -UseRegistryDataTypes $UseRegistryDataTypes -Include $Include -Exclude $Exclude -HasValueFilters $hasValueFilters } $keyItems = Get-ProcessedRegistryKeys -RegistryPath $RegistryPath -Exclude $Exclude -HasKeyFilters $hasKeyFilters -DisplayItemCounts $DisplayItemCounts $allItems = Invoke-RegistryItemSorting -ValueItems $valueItems -KeyItems $keyItems -SortValuesByType $SortValuesByType -SortDescending $SortDescending $allItems = Set-LastItemFlag -Items $allItems return $allItems } |