2017-08-12 1 views
1

Ich habe ein Skript, das einige Dateien im Verzeichnis C:\Windows entfernt und ersetzt.Führen Sie Python-Skript als Administrator in Windows

Ich starte die Befehlszeile als Admin, dann starte ich mein Python-Skript darin. Und wenn das Skript versucht, Dateien von C:\Windows zu entfernen, bekomme ich WindowsError error 5.

Wie kann ich das beheben?

Mögliche Lösung: Eigentlich Ich habe versucht, Dateien zu ändern, die alle Berechtigungen nur für Benutzer Trusted, so habe ich diese https://github.com/jschicht/RunAsTI Python-Skript ausgeführt werden.

+0

Haben Sie versucht, "Runas" Cmd Befehl? – iColdBeZero

+0

Sie sind ein Administrator, also können Sie die Eigentumsrechte übernehmen und sich selbst die gewünschten Berechtigungen erteilen. Sie können 'subprocess.call' verwenden, um takeown.exe und icacls.exe auszuführen. – eryksun

Antwort

1

WindowsError error 5 tritt auf, wenn Sie keine Systemadministratorberechtigungen zum Ausführen von Aktionen haben.
Sie können versuchen, Skript mit Admin-Privilegien mit Windows Cmd-Befehl runas ausführen zu erzwingen.
versuchen, etwas wie folgt aus:

runas /user:administrator_account path_to_script 

Nur ADMINISTRATOR_ACCOUNT mit Kontonamen ersetzen, die Rechte auf Ihrem Computer hat. Auch dieser Befehl wird zur Eingabe eines Passworts auffordern (wenn das Konto eine Einstellung hat). Für weitere Informationen zu diesem Befehl können Sie lesen here.

+1

Mit den Standard-Benutzerkontensteuerung und den Richtlinieneinstellungen funktioniert runas.exe nur noch so, wie Sie es erwarten, mit dem Konto "Administrator" (RID 500), das manuell aktiviert werden muss. Andere Administratorkonten werden mit einem geteilten Token angemeldet, und runas.exe erstellt den Prozess mit dem Standardtoken anstelle des erhöhten Tokens. – eryksun

+0

Aber das OP behauptet, von einer erhöhten Eingabeaufforderung bereits zu arbeiten, also sollte Python bereits Admin-Rechte haben, in welchem ​​Fall das OP versucht, eine Speicher-gemappte Datei zu löschen, wie zum Beispiel eine geladene DLL, laufendes Programm oder gemappt Datendatei. Der Speichermanager erlaubt nicht das Löschen von Speicherkarten. – eryksun

+0

Sie sind völlig richtig, vergessen, dass danke für den Hinweis – iColdBeZero

Verwandte Themen