Ich habe nächste Code:Powershell C# Fahrbefehl nicht funktioniert
private void ExecutePowerShellCommand(string command)
{
try
{
Runspace rs = RunspaceFactory.CreateRunspace();
rs.Open();
using (PowerShell ps = PowerShell.Create())
{
ps.Runspace = rs;
ps.AddCommand(command);
var psOutput = ps.Invoke();
LogPSHeader();
foreach (var item in psOutput)
{
if (item == null) continue;
LogPS(item.BaseObject.ToString());
}
if (ps.Streams.Error.Count > 0) LogPS("ERROR");
LogPSEnding();
}
//rs.Close();
}
catch (Exception ex)
{
Log(ex.ToString());
}
}
Als nächstes wird, wie ich versuche, diese Methode zu nennen:
ExecutePowerShellCommand("Get-NetAdapter");
Das Problem, dass ein solcher Code nicht funktioniert und i Ich weiß nicht warum. Ich möchte die gleiche Ausgabe wie in der Konsole, aber in meiner App haben. Jedes Mal, wenn ich runnig bin, bekomme ich verschiedene Ausnahmen im Debug-Modus, wie zum Beispiel: - Operation Canceled Exception - Kann 'Event.Format.ps1xml' Datei nicht finden. Wenn ich diese Datei in den Ordner seiner Suche setze, erhalte ich eine Anfrage für die nächste Datei usw. - Als nächstes konnte er keine Datei im Ordner finden (ich erinnere mich nicht an den genauen Namen der Datei) 'C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ Module \ Appx'. Wenn ich versuche, C# Programm nicht von VS zu laufen, aber kompilierte exe läuft i nächste Ausgabe bin immer:
MSFT_NetAdapter (Creation = "MSFT_NetAdapter", DeviceID = „{4C67B2DB-572B-4CB8- 9D0F-19AC7FE93B1B} "SystemCreationClassName = "CIM_NetworkPort" Systemname = "w-KerbiczkovYuI.e-lab.icl.kazan.ru")
MSFT_NetAdapter (Creation = "MSFT_NetAdapter" DeviceID = " {CBBC4607- 17BB-4FFB-A93F-A08F17472C8A} ", SystemCreationClassName = " CIM_NetworkPort ", SystemName =" w-KerbiczkovYuI.e-lab.icl.kazan.ru ")
MSFT_NetAdapter (Creation = "MSFT_NetAdapter" DeviceID = "{31950F9C-DF49-49A7-8BF9-CBD36F99D7CB}", SystemCreationClassName = "CIM_NetworkPort" Systemname = „w-KerbiczkovYuI.e-lab.icl.kazan. ru ")
MSFT_NetAdapter (Creation = "MSFT_NetAdapter" DeviceID = "{B03679B3-199A-43D8-9088-E919658424B1}", SystemCreationClassName = "CIM_NetworkPort" Systemname =" w-KerbiczkovYuI.e-lab. icl.kazan.ru "
Ich denke jeder Datensatz in diesem Ausgang ist für die Schnittstelle (ich habe 4 Int Oberflächen).
Wenn ich in PowerShell-Konsole arbeite - nichts schlechtes und alles funktioniert wie erwartet. Wenn ich versuche auszuführen, zum Beispiel: ExecutePowerShellCommand("Get-Process");
- keine Ausnahmen und ich bekomme das Ergebnis. Nicht das gleiche wie in der PS-Konsole, aber ohne Ausnahme in VS.
Was mache ich falsch und wie kann ich erwartetes Ergebnis erhalten und habe die gleiche Ausgabe wie in der PowerShell-Konsole in meiner App?