ファイルを読み込んで、そのファイルのハッシュを生成しようとしています。ほとんどの場合、これはスムーズに進みました。ただし、ハンドルを取得できないファイルがいくつかあります。例えば:
file("c:\\windows\\system32\\nvvsvc.exe")
次のエラーが発生します。IOError: [Errno 2] No such file or directory: 'c:\\windows\\system32\\nvvsvc.exe
同様に、次のコマンド:
subprocess.check_output(r"dir c:\windows\system32\nvvsvc.exe", shell = True)
次のエラーが発生します。
ファイルが見つかりません
トレースバック (最新の呼び出しが最後):
ファイル "< stdin >"、1 行目、< module > 内
ファイル「C:\Python27\lib\subprocess.py」、544 行目、check_output
Raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: コマンド 'dir c:\windows\system32\nvvsvc.exe' がゼロ以外の終了ステータス 1 を返しました
そこにファイルがあることをcacls.exeに認めさせようとするなど、その多くのバリエーションを試しました。ただし、python インスタンス (exit()) から戻って を実行するとdir c:\windows\system32\nvvsvc.exe
、そこに実際にファイルがあることが返されます。
代わりに calc.exe を使用した同様のテストでは、それを表示してハッシュすることができ、Python 内部から問題なく実行できます。
私はPython 2.7を実行しています。管理者権限 (コマンド プロンプトの管理者として実行) で python を起動しようとしましたが、何も変わりません。ファイルシステムが基本的にそのファイルが存在しないふりをしている範囲で、Python内から実行すると、権限にいくつかの変更があるようです。
参考までに、問題のファイルの所有者 (同様のものは他にもあります) はシステムであり、ファイルの cacls により、ユーザー、管理者、およびシステムからの読み取りが許可されます。