Frage

muss ich mit System.Diagnostics.Process.Start () ein Kommandozeilen-Programm starten und als Administrator ausführen.

Diese Aktion wird auch von einem geplanten Aufgabe jeden Tag ausgeführt werden.

War es hilfreich?

Lösung 5

Ich fand es, ich brauche die geplante Aufgabe gesetzt, die Anwendung mit höchsten Privilegien in der Allgemeinen Einstellungen auszuführen.

Andere Tipps

Ich habe nur versuchen, zu verwenden:

Process p = new Process();
p.StartInfo.Verb = "runas";

Das funktioniert gut, wenn ich mein Programm als Administrator renne, aber wenn die geplante Aufgabe es läuft, ist es nicht nehmen, die ‚runas‘ in Betracht, denke ich.

Eine besseren sichere Option, um einen Prozess mit Login und Passwort laufen ist die Secure-Klasse verwenden, um das Passwort zu verschlüsseln. Hier ist ein Beispiel von Code:

string pass = "yourpass";
string name ="login";
SecureString str;
ProcessStartInfo startInfo = new ProcessStartInfo();
char[] chArray = pass.ToCharArray();
fixed (char* chRef = chArray)
{
    str = new SecureString(chRef, chArray.Length);
}
startInfo.Password = str;
startInfo.UserName = name;
Process.Start(startInfo);

Sie müssen unsicheren Code in Ihren Projekteigenschaften ermöglichen.

Hope diese Hilfe.

Wenn Sie geplante Aufgaben verwenden, können Sie den Benutzer und das Kennwort für die Aufgabe können Sie unter auszuführen.

Verwenden Sie die Administratoranmeldeinformationen auf die Aufgabe, und Sie werden in Ordnung sein.

Mit Process.Start, müssen Sie die UserName und Password für die ProcessStartInfo liefern:

Process p = new Process("pathto.exe");
p.StartInfo.UserName = "Administrator";
p.StartInfo.Password = "password";
p.Start();

Beachten Sie, dass in einem Programm ein Passwort im Klartext speichert, wird nie so lange sicher, wie jemand die Anwendung durchgehen und sehen, was drin ist. Mit Secure ein gespeichertes Passwort in ein Secure Passwort nicht konvertiert es sicherer machen, weil das Klartext-Passwort noch vorhanden sein würde.

Der beste Weg, Secure zu verwenden ist zu einer Zeit, in someway ein einzelnes Zeichen für die Umwandlung zu übergeben, die das gesamte unverschlüsselte Passwort überall nicht im internen Speicher oder auf der Festplatte benötigen zu müssen. Danach Zeichen umgewandelt wird, soll das Programm vergessen, und dann zum nächsten weitergehen.

Dies könnte getan werden, ich denke nur von Zeichen durch die Übersetzung vorbei, wie sie durch den Benutzer in die Konsole eingegeben werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top