function Test-IsPackageInstallerV2 { <# .SYNOPSIS Returns true if a particular package is an installer package. .PARAMETER PackageName [string] The package name to check .PARAMETER Package [object] The package to check #> [CmdletBinding(DefaultParameterSetName = 'PackageName')] [OutputType([bool])] Param ( [Parameter(Mandatory = $true, Position = 0, ParameterSetName = 'PackageName')] [ValidateScript({if ($PSCmdlet.ParameterSetName -eq 'PackageName') {return ![string]::IsNullOrWhiteSpace($_)} else {return $true}})] [string]$PackageName, [Parameter(Mandatory = $true, Position = 0, ParameterSetName = 'Package')] [ValidateScript({if ($PSCmdlet.ParameterSetName -eq 'Package') {return $null -ne $_} else {return $true}})] [object]$Package ) if ($PSCmdlet.ParameterSetName -eq 'Package') { $PackageName = $Package.Name } return ($_InstallerPackages.Where({$PackageName -like $_}).Where({$_}).Count -gt 0) }