Hallo,
habe ein Problem:
möchte einen externen Prozess starten und den StandardErrorOutput auslesen.
Klappt auch alles wunderbar. Allerdings möchte/muss ich den Prozess unter einen anderen User starten. Und zack, ich bekomme Pobleme. "Das Handle ist ungültig"
Ich schreibe in VB.NET. Ich denke aber, das Problem hätte ich auch in C#.
Kann es denn sein, dass ich keinen Output von einem Konsolen Programm bekomme, wenn ich es unter einem anderen User starte?
Wenn ich .Domain, .UserName und .Password auskommentiere, gehts ja!
Hier mal der Code:
Vielen Dank im Voraus!
habe ein Problem:
möchte einen externen Prozess starten und den StandardErrorOutput auslesen.
Klappt auch alles wunderbar. Allerdings möchte/muss ich den Prozess unter einen anderen User starten. Und zack, ich bekomme Pobleme. "Das Handle ist ungültig"
Ich schreibe in VB.NET. Ich denke aber, das Problem hätte ich auch in C#.
Kann es denn sein, dass ich keinen Output von einem Konsolen Programm bekomme, wenn ich es unter einem anderen User starte?
Wenn ich .Domain, .UserName und .Password auskommentiere, gehts ja!
Hier mal der Code:
Code:
Public prog As New System.Diagnostics.Process() Public Sub start_process(ByVal from As String, ByVal dest As String) AddHandler prog.ErrorDataReceived, AddressOf ProcessErrorDataReceived With prog.StartInfo .FileName = "c:\download\programm.exe" .WorkingDirectory = "c:\download\" .Arguments = from + " " + dest .WindowStyle = ProcessWindowStyle.Hidden .UseShellExecute = False '.LoadUserProfile = False .CreateNoWindow = True .RedirectStandardError = True .RedirectStandardOutput = True .Domain = "laptop1" .UserName = "harry" .Password = make_secureString("geheim") 'Funktion zum Verschlüsseln des ' SecureStrings End With Try prog.Start() prog.BeginErrorReadLine() tmrCheckProcess.Start() 'End With Catch ex As Exception MsgBox(ex.Message) End Try End Sub
Comment