Laden...

[gelöst] Process.Start mit RunAs

Erstellt von SeriouslyNot vor 10 Jahren Letzter Beitrag vor 10 Jahren 9.701 Views
S
SeriouslyNot Themenstarter:in
13 Beiträge seit 2013
vor 10 Jahren
[gelöst] Process.Start mit RunAs

Hallo,

ich möchte gern ein Programm als anderer Nutzer starten. Grundsätzlich erstmal kein Problem, jedoch soll kein Passwort eingegeben. Deshalb mittels "RunsAs" und /savecred. Ich dreh mich gerade absolut um Kreis und bitte um eure Hilfe.

Das war mein Ansatz:

Process.Start(@"C:\Windows\System32\runas.exe C:\Program Files\Programm.exe /arg" , @"/savecred /user:domain\user");

Vielen Dank schon mal..

I
57 Beiträge seit 2011
vor 10 Jahren
 
ProcessStartInfo startInfo = new ProcessStartInfo("einprogramm.exe");
 startInfo.Verb ="runas";
startInfo.Arguments = @"Argumente inkl savecred";
Process process = new Process();
process.StartInfo = startInfo;
process.Start();

Sollte eigentlich funktionieren

S
SeriouslyNot Themenstarter:in
13 Beiträge seit 2013
vor 10 Jahren

Funktioniert leider nicht.

Fehlermeldung:
Der angegebenen Datei ist keine Anwendung zugeordnet

            
            ProcessStartInfo startInfo = new ProcessStartInfo();
            startInfo.Verb = @"cmd.exe";
            startInfo.Arguments = @"runas.exe /savecred /user:domain\user C:\\Program Files\\SolarWinds\\DameWare\\DWRCC.exe";
            Process process = new Process();
            process.StartInfo = startInfo;
            startInfo.ErrorDialog = true;
            process.Start();
Hinweis von herbivore vor 10 Jahren

Das entspricht allerdings auch nicht dem, was iSliver vorgeschlagen hat. Anderseits entspricht das Verb runas nicht dem runas Befehl (EXE).

B
293 Beiträge seit 2008
vor 10 Jahren

Ich hab das schon mal so gelöst. Vielleicht ist das für dich ja auch eine Option. Müsstest du dann ggf. noch anpassen, falls du User und Pass immer noch in einer Datei statt im Sourcecode haben möchtest.


ProcessStartInfo myProcess = new ProcessStartInfo("MeinProgramm.exe");               
myProcess.Arguments = "/q";
myProcess.UserName = "MeinBenutzername";
string pwd = "MeinPasswort";
SecureString password = new SecureString();
Array.ForEach<char>(pwd.ToCharArray(), item => password.AppendChar(item));
myProcess.Password = password;
myProcess.UseShellExecute = false;

Process p = new Process();
p.StartInfo = myProcess;
p.Start();

Viele Grüße

Wenn ich nicht hier bin, findest du mich auf code-bude.net.

S
SeriouslyNot Themenstarter:in
13 Beiträge seit 2013
vor 10 Jahren

Das geht leider nicht, da das Programm von mehreren Personen genutzt wird, welche immer ein anderen Kennwort benutzen. Der einzige Ansatz war ohne das ein Passwort eingegeben werden muss oder hinterlegt werden müssen - runas ...

edit: Manchmal sieht man den Wald vor lauter Bäumen nicht...

Process.Start("cmd.exe", @"/C runas.exe /savecred /user:" + struser + " " + "\"C:\\Program Files\\SolarWinds\\DameWare\\DWRCC.exe -c -h -m:" + strhost + "\"");

So gehts. 😃

B
293 Beiträge seit 2008
vor 10 Jahren

Wie geht meine Lösung nicht? Wo ist das Problem mein Snippet noch um einen Streamreader zu erweitern und damit Benutzernamen und Passwort aus einer Datei einzulesen, so wie ich es ursprünglich bereits vorgeschlagen habe?

Dann hast du Nutzernamen und Passwort, wie von dir gewünscht, in einer Datei.

Wenn ich nicht hier bin, findest du mich auf code-bude.net.

S
SeriouslyNot Themenstarter:in
13 Beiträge seit 2013
vor 10 Jahren

Deine Lösung funktioniert. Mein Problem war, das die Passwörter unbekannt sind und bleiben sollen. Ich kann die Leute nicht zwingen ihre Passwörter rauszurücken, damit ich Sie in eine Datei eintragen kann.

16.807 Beiträge seit 2008
vor 10 Jahren

Irgendwo gibts den Punkt, dass man das Passwort braucht.
"Einfach so" geht nicht.

S
SeriouslyNot Themenstarter:in
13 Beiträge seit 2013
vor 10 Jahren

Richtig, ich habe mich vielleicht unverständlich ausgedrückt. Die Passwörter sind schon bekannt, da andere Programme bereits per runas gestartet werden und mit /savecred die Passwörter gespeichert sind. Das wollte ich mir mit runas zunutze machen.
Lösung habe ich weiter oben im Beitrag editiert.

Vielen Dank für eure Hilfe.