[英]Registry Entries for all users in Python
我編寫了一個在注冊表中存儲一些內容的應用程序。 剛開始時,我將它們添加到了HKEY_LOCAL_MACHINE,但是一直在寫入權限錯誤。 因此,建議我使用HKEY_CURRENT_USER,該方法一直有效,直到我意識到無法從另一個帳戶訪問它們。 如何寫入注冊表但允許所有帳戶訪問讀寫?
我使用了Python模塊_winreg。
HKEY_LOCAL_MACHINE/Software/YourSoftware
需要管理員權限,用於安裝時數據,或HKEY_CURRENT_USER/Software/YourSoftware
,僅用於與此環境相關的數據(此用戶,此配置文件等)
編輯:另一種方法是存儲配置文件並在安裝時設置正確的權限。
第二次編輯:我在另一條評論中讀到,您希望確保只有您的應用程序修改了一些文件,因此您存儲修改時間。 解決方法:
我的直覺表明你的要求只是由你的應用程序修改文件,但在任何帳戶下都是非常錯誤的,但或多或少正確的解決方案必須增加額外的復雜性。 您的決定:檢查您的要求,可能還有您的設計,或者增加一層復雜性,可能還有可能。
第三次編輯:拆分你的應用程序,有一個管理員應用程序,可以通過管理員權限寫入HKLM
並設置設置。 普通用戶權限足以閱讀HKLM
您可能需要管理員權限才能寫入HKLM,或者解決非全局注冊表項。 不同版本的Windows之間的行為會有所不同。
如果要寫入注冊表以便所有用戶都可以讀取它,則需要以管理員權限運行程序。
您可能更樂意將信息存儲在文件中,這樣更容易管理。
另一種可能是將任何人的HKLM密鑰的安全性更改為R / W。 雖然這在某種程度上反對修改的安全性的想法似乎有點延伸。
Regedt32可以設置密鑰,因此基礎API也必須具有密鑰。
總而言之,這是運行應用程序的一種搞砸的方式,顯示出對安全性和安全性模型缺乏了解。 (換句話說,典型的Windows開發。)
我怎么會這么憤世嫉俗......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.