簡體   English   中英

使用Python設置Windows XP注冊表項權限

[英]Setting Windows XP registry key permissions using Python

我的一位客戶使用了他們注冊表的一部分。 由於某些原因,HKEY_CLASSES_ROOT下的一堆子鍵沒有設置權限。 因此,我正在瀏覽按鍵並手動設置按鍵,例如:

  1. 將管理員添加為組
  2. 將管理員設置為所有者

可能需要設置成千上萬個密鑰,每個密鑰需要完成10到12步。 所以我想通過Python自動化該過程。 是否有一個模塊可以完成這兩項工作?

謝謝!

經過幾乎一整天的研究,我使用Windows注冊表和權限的解決方案是使用SetACL 您可以使用COM對象,也可以使用二進制文件和子進程模塊。 這是我在混合環境中修改權限時使用的代碼片段(我有約50台32位和64位Windows計算機,Windows 7和Windows XP pro ...):

from subprocess import Popen, PIPE

def Is64Windows():
    '''check if win64 bit'''
    return 'PROGRAMFILES(X86)' in os.environ

def ModifyPermissions():
    """do the actual key permission change using SetACL"""
    permissionCommand = r'SetACL.exe -on "HKLM\Software\MPICH\SMPD"'\
    +' -ot reg -actn ace -ace "n:Users;p:full"'
    permissionsOut = Popen(permissionCommand, stdout = PIPE, stderr = PIPE)
    pout, perr = permissionsOut.communicate()
    if pout:
        print pout
        sys.exit(0)
    elif perr:
        print perr
        sys.exit(1)

def main():
    ... some code snipped ...

    os.chdir('SetACL')
    if Is64Windows():
        os.chdir('x64')
        ModifyPermissions()
    else:
        os.chdir('x86')
        ModifyPermissions()

因此,它並不是真正的純Python,但它可以工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM