Private/Get-FPFilteredSet.ps1
function Get-FPFilteredSet { <# .SYNOPSIS Return Targeted XML data set .DESCRIPTION Return Targeted XML data set for this device or associated collection .PARAMETER XmlData XML data set for specific control group (e.g. files, folders, etc.) .PARAMETER Collections Array of collection names .EXAMPLE $dataset = Get-FPFilteredSet -XmlData $ControlData.configuration.files.file -Collections (Get-FPDeviceCollections -XmlData $ControlData) .NOTES #> param ( [parameter(Mandatory = $True)] $XmlData, [parameter(Mandatory = $False)] $Collections ) $thisDevice = $env:COMPUTERNAME if ($null -ne $Collections) { $result = $XmlData | Where-Object { $_.enabled -eq 'true' -and ($Collections.Contains($_.collection)) } } else { $result = $XmlData | Where-Object { $_.enabled -eq 'true' -and ($_.device -eq 'all' -or $_.device -eq $thisDevice) } } Write-Output $result } |