2017-08-12 616 views
1

我有一個腳本可以刪除並替換C:\Windows目錄中的某些文件。在Windows中以管理員身份運行python腳本

我以管理員身份啓動命令行,然後啓動我的python腳本。當腳本試圖從C:\Windows中刪除文件時,我得到WindowsError error 5

我該如何解決這個問題?

可能的解決辦法: 其實我是想修改其擁有所有權限只對用戶的TrustedInstaller文件,所以我用這個https://github.com/jschicht/RunAsTI運行Python腳本。

+0

您是否嘗試使用「runas」cmd命令? – iColdBeZero

+0

你是一名管理員,所以你可以獲得所有權併爲自己授予你想要的任何權限。您可以使用'subprocess.call'來運行takeown.exe和icacls.exe。 – eryksun

回答

1

WindowsError error 5當您沒有系統管理員權限來執行操作時發生。
您可以嘗試使用Windows cmd命令runas強制腳本與管理員權限一起運行。
嘗試是這樣的:

runas /user:administrator_account path_to_script 

只是擁有計算機上的特權帳戶名稱替換administrator_account。此命令也會提示輸入密碼(如果帳戶有一個設置)。 有關此命令的更多信息,您可以閱讀here.

+1

使用默認的UAC和策略設置如今,runas.exe只會工作,你所期望的「管理員」帳戶(RID 500),它必須手動啓用的方式。其他管理員帳戶登錄所用分裂的道理,並且runas.exe將創建使用標準的令牌,而不是提升的令牌的過程。 – eryksun

+0

但OP聲稱是從提升的命令提示的工作已經,所以Python應該已經有管理員權限,在這種情況下,OP可能試圖刪除存儲器映射文件,比如裝入DLL,運行可執行文件,或映射數據文件。內存管理器不允許刪除內存映射文件。 – eryksun

+0

你是完全正確的,忘了這一點感謝便條 – iColdBeZero

相關問題