Ich habe einen Webservice und möchte einen Shell-Befehl ausführen können, der Administratorrechte erfordert. (Der Befehl ist DJOIN, Vorstufe AD mit einem Computer-Konto und erstellen Sie eine Datei.)Wie führe ich einen Shell-Befehl in C# (auf einem Webserver) mit erhöhten Anmeldeinformationen aus?
ich dies zu testen, wie folgt:
System.Diagnostics.Process proc = new System.Diagnostics.Process();
System.Security.SecureString ssPwd = new System.Security.SecureString();
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.FileName = "cmd.exe";
proc.StartInfo.Arguments = "/C echo %username% > c:\\test\\user.txt";
proc.StartInfo.Domain = "mydomain";
proc.StartInfo.UserName = "myadmin";
string password = "mypassword";
for (int x = 0; x < password.Length; x++)
{
ssPwd.AppendChar(password[x]);
}
proc.StartInfo.Password = ssPwd;
proc.Start();
C: \ Testordner auf dem Webserver hat die richtigen Berechtigungen, und der Code-Block läuft gut, wenn ich es ohne Angabe von Anmeldeinformationen ausführen. Sie vermag jedoch nicht, wenn ich sie in hinzufügen
Ich habe auch einschließlich versucht.
proc.StartInfo.Verb = "runas"
aber das funktioniert auch nicht.
Wie kann ich den Befehl als Benutzer mit erhöhten Rechten ausführen?
https://support.microsoft.com/en-us/kb/306158 Überprüfen Sie die "Identität eines bestimmten Benutzers in Code" – Gusman
Mögliche Duplikate von [Prozess Privilegien programmatisch erhöhen?] (Http://stackoverflow.com/ questions/133379/elevating-process-privilege-programmatically) – Xiaoy312
Ich habe es auch mit dem Verb "runas" versucht, aber das funktioniert auch nicht. – Ben