Der Where-Object PowerShell Befehl ist nicht unbedingt der schnellste Befehl, wenn man damit versucht etwas in größeren Objekten zu finden, oder wenn er innerhalb von Schleifen oft benutzt wird, können sich die Ausführungszeiten massiv aufaddieren.
Eine mögliche Lösung für die Problematik stellt der folgende kleine CSharp Codeblock dar, denn man innerhalb von PowerShell alternativ benutzen kann.
Zeile 1-22 stellt die benötigte CSharp Logik innerhalb von PowerShell bereit
Zeile 27-30 zeigt als Negativbeispiel die Verwendung von Where-Object und miss dessen Ausführungszeit
Zeile 32-35 zeigt die alternative Verwendung der CSharp FastSearch Logik und misst dessen Ausführungszeit
Die Ausführungszeit ist von vielen Faktoren abhängig, wie z.B. der Objektgröße, bei meinen Test war die CSharp Logik um den Faktor 5-20 schneller
# FastSearch function
$Source = @"
using System;
using System.Management.Automation;
using System.Collections.Generic;
namespace FastSearch
{
public static class Search
{
public static List