Ich versuche, eine Datei einzulesen und einen Hash der Datei zu erzeugen. In den meisten Fällen ist dies reibungslos verlaufen. Es gibt jedoch ein paar Dateien, mit denen ich nicht umgehen kann. Zum Beispiel:Eine Datei kann nicht mit dem Befehl win32 dir und dem Python-Subprozess angezeigt werden.
file("c:\\windows\\system32\\nvvsvc.exe")
Erzeugt den Fehler: IOError: [Errno 2] No such file or directory: 'c:\\windows\\system32\\nvvsvc.exe
ähnlich der Befehl:
subprocess.check_output(r"dir c:\windows\system32\nvvsvc.exe", shell = True)
die Fehler produziert:
File Not Found
Traceback (most recent call last):
File "< stdin >", line 1, in < module >
File "C:\Python27\lib\subprocess.py", line 544, in check_output
raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command 'dir c:\windows\system32\nvvsvc.exe' returned non-zero exit status 1
ich davon viele Variationen ausprobiert, darunter versuchen um sogar cacls.exe zuzugeben, dass dort eine Datei ist. Wenn ich jedoch die Python-Instanz (exit()) verlasse und eine dir c:\windows\system32\nvvsvc.exe
führe, wird zurückgegeben, dass dort tatsächlich eine Datei vorhanden ist.
Ein ähnlicher Test mit calc.exe erlaubt mir, es zu sehen und es beide gut aus dem Inneren Python Hash.
Ich verwende Python 2.7. Ich habe versucht, Python mit administrativen Privilegien zu starten (laufen als Administrator für die Eingabeaufforderung), aber das ändert nichts. Es scheint einige Privilegienänderungen zu geben, wenn man von innerhalb von Python läuft, bis das Dateisystem im Wesentlichen vorgibt, dass die Datei nicht in Python existiert.
Als Referenz ist der Besitzer der fraglichen Datei (es gibt andere, die ähnlich sind), ist System, und die CACLs auf der Datei erlauben das Lesen von Benutzer, Admin und System.
Klingt wie ein Berechtigungsproblem. Laufen Sie von einer [erhöhten Eingabeaufforderung] (http://windows.microsoft.com/en-US/windows-vista/Command-Prompt-frequently-asked-questions)? –