Hallo alle miteinander^^
Bin ein blutiger Programmieranfänger und tüftel gerade an einem kleinen Programm, welches mir vorbestimmte Befehle in PowerShell ausführt... bei mir klappt das mit folgendem Code auch schon ganz gut
Ist halt erstmal nur der Funktion halber, damit ich sehe dass es auch funktioniert *gg* richtig gearbeitet wird da später dann mit wenn alles läuft.
nur mein problem ist jetzt... ich habe die benötigte DLL für einen PowerShell zugriff als reference angegeben, und zwar die System.Management.Automation.dll.
Laut meinen informationen reicht es wenn ich die DLL und die .exe in einen ordner packe um sie auszuführen.
schicke ich nun die .exe und die .dll an einen anderen rechner und führe sie dort aus bekomme ich diese Exception mit der ich leider nichts anfangen kann...
"Unbehandelte Ausnahme: System.Management.Automation.Runspaces.PSSnapInException:
An error occurred when loading the system Windows PowerShell snap-ins. Please c
ontact Microsoft Support Services. ---> System.Management.Automation.PSArgumentE
xception: Unable to access Windows PowerShell registry information. ....usw."
kann mir wohl jemand weiterhelfen was ich falsch gemacht oder vergessen habe?
danke schonmal
MfG
Marcel
Bin ein blutiger Programmieranfänger und tüftel gerade an einem kleinen Programm, welches mir vorbestimmte Befehle in PowerShell ausführt... bei mir klappt das mit folgendem Code auch schon ganz gut

Code:
using System;
using System.Text;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Management.Automation;
using System.Management.Automation.Runspaces;
using System.Management.Automation.Host;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
Runspace myRunSpace = RunspaceFactory.CreateRunspace();
myRunSpace.Open();
//1. Befehlsaufruf
Pipeline pipeLine = myRunSpace.CreatePipeline();
Command myCommand = new Command("Get-Command");
pipeLine.Commands.Add(myCommand);
Collection<PSObject> commandResults = pipeLine.Invoke();
foreach (PSObject cmdlet in commandResults)
{
string cmdletName = cmdlet.Properties["Name"].Value.ToString();
Console.WriteLine(cmdletName);
}
Console.WriteLine();
//2. Befehlsaufruf
Pipeline pipeLine2 = myRunSpace.CreatePipeline();
Command myCommand2 = new Command("Get-ChildItem");
pipeLine2.Commands.Add(myCommand2);
Collection<PSObject> commandResults2 = pipeLine2.Invoke();
foreach (PSObject cmdlet in commandResults2)
{
string cmdletName = cmdlet.Properties["Name"].Value.ToString();
Console.WriteLine(cmdletName);
}
Console.ReadLine();
}
}
}
Ist halt erstmal nur der Funktion halber, damit ich sehe dass es auch funktioniert *gg* richtig gearbeitet wird da später dann mit wenn alles läuft.
nur mein problem ist jetzt... ich habe die benötigte DLL für einen PowerShell zugriff als reference angegeben, und zwar die System.Management.Automation.dll.
Laut meinen informationen reicht es wenn ich die DLL und die .exe in einen ordner packe um sie auszuführen.
schicke ich nun die .exe und die .dll an einen anderen rechner und führe sie dort aus bekomme ich diese Exception mit der ich leider nichts anfangen kann...
"Unbehandelte Ausnahme: System.Management.Automation.Runspaces.PSSnapInException:
An error occurred when loading the system Windows PowerShell snap-ins. Please c
ontact Microsoft Support Services. ---> System.Management.Automation.PSArgumentE
xception: Unable to access Windows PowerShell registry information. ....usw."
kann mir wohl jemand weiterhelfen was ich falsch gemacht oder vergessen habe?
danke schonmal

MfG
Marcel