Private/EvaluateFieldCondition.ps1
function EvaluateFieldCondition { [OutputType('string')] [CmdletBinding(DefaultParameterSetName = 'CSVUser')] param ( [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [scriptblock]$Condition, [Parameter(Mandatory, ParameterSetName = 'CSVUser')] [ValidateNotNullOrEmpty()] [pscustomobject]$CsvUser, [Parameter(Mandatory, ParameterSetName = 'ADUser')] [ValidateNotNullOrEmpty()] [object]$AdUser ) if ($PSBoundParameters.ContainsKey('CsvUser')) { $replace = '$CsvUser' } elseif ($PSBoundParameters.ContainsKey('AdUser')) { $replace = 'ADUser' } $fieldScript = $Condition.ToString() -replace '\$_', $replace & ([scriptblock]::Create($fieldScript)) } |