Ich habe eine Liste von PSObject-Elementen, die beim Aufruf der Methode .Invoke() zurückgegeben werden, während das Paket System.Management.Automation verwendet wird. Beim Debuggen kann ich die Werte der Objekte, die ich drucken möchte, in den Eigenschaften BaseObject und ImmediateBaseObject sehen. Wenn Sie jedoch die foreach-Schleife verwenden, um die Ergebnisse zu durchlaufen, und die BaseObjects jedes Elements drucken, wird nur der Typ des Elements gedruckt (
). Wie speichere ich den Wert von BaseObjects in einer Variablen?
Hier ist der Code und einige Screenshots:
Code: Select all
using (var ps = PowerShell.Create())
{
var results = ps.AddScript(File.ReadAllText(@".\PSScripts\test_func2.ps1")).Invoke();
foreach (PSObject result in results)
{
if (result != null)
{
outList.Add(result.BaseObject.ToString())
}
}
}
Dies ist das Ergebnisobjekt während des Debuggens, das nur Arrays mit relevanten Daten enthält. Aus Datenschutzgründen ausgeblendet.
Dies ist das Ergebnis Objekt > BaseObject-Ansicht während des Debuggens. Die Mitgliedereigenschaft des Ergebnis-Objekts enthält nicht die relevanten Daten.
Und das ist die Ausgabe, die ich bekomme, wenn ich den obigen Code ausführe:
Vielen Dank im Voraus.