2010-12-21 1 views
0

Ich versuche eine Konsolenanwendung zu erstellen, um eine Batchdatei zu ersetzen. Die Stapeldatei wurde zur Eingabe eines Benutzers aufgefordert und führte den folgenden Code aus ...Wie kann ich IE mit verschiedenen Benutzern ausführen und eine URL angeben?

RUNAS/Benutzer: USA \% usr% "C: \ Programme \ Internet Explorer \ iexplore.exe% ServerPath% /% AppName%"

Wie kann ich dies in C# -Code übersetzen? Ich benutze im Grunde den folgenden Code. Ich erkläre einen Benutzernamen und einen Pfad, aber es startet immer IE mit meinem Windows-Login. Benutzt ich Verb falsch? Muss ich ein Passwort angeben, und wenn ja, wie?

string sPath = ServerPath 
ProcessStartInfo startInfo = new ProcessStartInfo(@"C:\Program Files\Internet Explorer\iexplore.exe"); 
startInfo.Verb = @"runas /user:USA\" + sUser; 
startInfo.Arguments = sPath; 
startInfo.UseShellExecute = false; 
Process.Start(startInfo); 

Antwort

2
function SecureString MakeSecureString(string text) 
{ 
    SecureString secure = new SecureString(); 
    foreach (char c in text) 
    { 
    secure.AppendChar(c); 
    } 

    return secure; 
} 

function void RunAs(string path, string username, string password) 
{ 
    ProcessStartInfo myProcess = new ProcessStartInfo(path); 
    myProcess.UserName = username; 
    myProcess.Password = MakeSecureString(password); 
    myProcess.UseShellExecute = false; 
    Process.Start(myProcess); 
} 

RunAs(APPLICATION, USERNAME, PASSWORD); 

Props zu fraser chapman's blog

+0

IE startet dann bekomme ich eine Securityrisk Seite "Ihre Sicherheitseinstellung Ebene setzt Ihr Computer in Gefahr" zu sagen. Allerdings, wenn ich die Batch-Datei nicht ausführen. – James

+0

Ich gehe von Windows Vista/7 aus? Ich würde empfehlen, den "Batch-Simulator" als Administrator auszuführen und zu sehen, ob das hilft. –

+1

Win XP, aber das Hinzufügen wurde behoben: myProcess.LoadUserProfile = true; – James

Verwandte Themen