2017-03-02 4 views
0

Mit dem subprocess.Popen ausführen können wir jede ausführbare Datei unter den aktuell angemeldeten Benutzer-Anmeldeinformationen wie so nennen:Wie Python-Prozess als ein anderer Windows-Benutzer

import subprocess 
cmd = ['C:\Windows\system32\executable.exe'] 
proc = subprocess.Popen(cmd, cwd=os.path.dirname(RAR_EXE), stdout=subprocess.PIPE) 
output = proc.stdout.read() 

Wäre es möglich, die gleiche executable.exe unter aufrufen und ausführen eine anderer Benutzer Anmeldeinformationen unter der Annahme, dass der Name und das Kennwort des Benutzers bekannt sind, wie zum Beispiel:

username = 'steve' 
password = 'password123` 

Antwort

1

Diese Frage haben nicht wirklich etwas mit Python zu tun. Sie fragen nur, wie Sie einen Befehl als einen anderen Benutzer über die Windows-Befehlszeile ausführen. Das runas Programm wird das für Sie tun:

Verwendung als in der Verbindung gegeben:

runas [{/ profile |/noprofile}] [/ env] [{/ netonly |/Savecred}] [/ Smartcard] [/ showtrustlevels] [/ Trustlevel]/user: ""

Wo:

  • /profile
    Lasten Profil des Benutzers. Dies ist der Standardwert. Dieser Parameter kann nicht mit dem Parameter/netonly verwendet werden.
  • /kein Profil
    Gibt an, dass das Benutzerprofil nicht geladen werden soll. Dadurch kann die Anwendung schneller geladen werden, in einigen Anwendungen kann es jedoch auch zu Fehlfunktionen kommen.
  • /env
    Gibt an, dass die aktuelle Netzwerkumgebung anstelle der lokalen Umgebung des Benutzers verwendet werden soll.
  • /netonly
    Zeigt an, dass die angegebene Benutzerinformation nur für den Fernzugriff gilt. Dieser Parameter kann nicht mit dem Parameter/profile verwendet werden.
  • /savecred
    Gibt an, ob die Anmeldeinformationen zuvor von diesem Benutzer gespeichert wurden. Dieser Parameter ist nicht verfügbar und wird unter Windows Vista Home oder Windows Vista Starter Edition ignoriert. Dieser Parameter kann nicht mit dem Parameter/smartcard verwendet werden.
  • /Smartcard
    Gibt an, ob die Anmeldeinformationen von einer Smartcard bereitgestellt werden sollen. Dieser Parameter kann nicht mit dem Parameter/savecred verwendet werden.
  • /showtrustlevels
    Zeigt die Vertrauensstufen an, die als Argumente für/trustlevel verwendet werden können.
  • /Trustlevel
    Gibt die Berechtigungsstufe an, mit der die Anwendung ausgeführt werden soll. Verwenden Sie/showtrustlevels, um die verfügbaren Vertrauensstufen anzuzeigen.
  • /user: ""
    Gibt den Namen des Benutzerkontos an, unter dem das Programm ausgeführt werden soll, den Programmnamen und den Pfad zur Programmdatei. Das Format des Benutzerkontonamens sollte @ oder \ sein.
  • /?
    Zeigt Hilfe an der Eingabeaufforderung an.

Es sieht nicht so aus ist es eine eingebaute Möglichkeit, das Kennwort des Benutzers zur Verfügung zu stellen, so dass Sie Eingangs- und Ausgangsleitungen einrichten müssen in der Lage sein, es zu schaffen, wenn Sie dazu aufgefordert. Sie können diese Aufgabe möglicherweise einfacher mit Pexpect finden, einem Modul von Drittanbietern für die Automatisierung der Interaktion mit Unterprozess-Tastaturen.

Verwandte Themen