Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
[gelöst] Process.Start mit RunAs
SeriouslyNot
myCSharp.de - Member



Dabei seit:
Beiträge: 13

Themenstarter:

[gelöst] Process.Start mit RunAs

beantworten | zitieren | melden

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..
private Nachricht | Beiträge des Benutzers
iSliver
myCSharp.de - Member



Dabei seit:
Beiträge: 57

beantworten | zitieren | melden

 
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
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von iSliver am .
private Nachricht | Beiträge des Benutzers
SeriouslyNot
myCSharp.de - Member



Dabei seit:
Beiträge: 13

Themenstarter:

beantworten | zitieren | melden

Funktioniert leider nicht.
Fehler
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();

Moderationshinweis von herbivore (17.10.2013 - 08:42)

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

private Nachricht | Beiträge des Benutzers
blutiger_anfänger
myCSharp.de - Member



Dabei seit:
Beiträge: 293
Herkunft: Meerbusch, NRW

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
SeriouslyNot
myCSharp.de - Member



Dabei seit:
Beiträge: 13

Themenstarter:

beantworten | zitieren | melden

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. :)
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von SeriouslyNot am .
private Nachricht | Beiträge des Benutzers
blutiger_anfänger
myCSharp.de - Member



Dabei seit:
Beiträge: 293
Herkunft: Meerbusch, NRW

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
SeriouslyNot
myCSharp.de - Member



Dabei seit:
Beiträge: 13

Themenstarter:

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16.034

beantworten | zitieren | melden

Irgendwo gibts den Punkt, dass man das Passwort braucht.
"Einfach so" geht nicht.
private Nachricht | Beiträge des Benutzers
SeriouslyNot
myCSharp.de - Member



Dabei seit:
Beiträge: 13

Themenstarter:

beantworten | zitieren | melden

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.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von SeriouslyNot am .
private Nachricht | Beiträge des Benutzers