簡體   English   中英

以編程方式編輯Local_Machine注冊表項(C#)

[英]Editing Local_Machine RegistryKeys Programmatically (C#)

我正在嘗試制作一個程序,以更改遠程計算機上的注冊表項值,以阻止/允許用戶個性化其鎖定屏幕圖像。 似乎我需要創建的密鑰位於HKEY_LOCAL_MACHINE\\SOFTWARE\\Policies\\Microsoft\\Windows\\Personalization ,其名稱為NoChangingLockScreen 我可以輕松地使用.reg文件執行此操作,並將所有更改合並到其注冊表中(我計划創建Windows服務來監視文件中的更改),盡管似乎我什至無法修改HKEY_LOCAL_MACHINE類中的任何鍵。 請注意:

  • 我是我們網絡上的域管理員,所有遠程計算機都具有管理員權限
  • 修改遠程PC的密鑰時不僅會發生此問題,而且我自己也會發生此問題
  • 我已將RegistryKey對象創建為可寫的(請參見下面的代碼)
  • 看來我什至不能使用OpenSubKey方法,因為讀取local_machine路徑只會引發對象異常
  • 我已經檢查了注冊表中該特定類的權限,並確保我的帳戶擁有完全控制權
  • 我發現很少有其他人遇到權限問題的文檔

     RegistryKey myKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\\Policies\\Microsoft\\Windows", true); 

Registry.ClassesRoot用於HKEY_CLASSES_ROOT 您需要像這樣使用Registry.LocalMachine字段:

using (var registryKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Policies\Microsoft\Windows", writable: true))
{
    ...
}

另請注意,這是用於本地注冊表訪問。 如果您想打開遠程注冊表,則需要使用另一種方法:

using (var remoteBaseKey = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, "RemoteMachineName"))
using (var registryKey = remoteBaseKey.OpenSubKey(@"SOFTWARE\Policies\Microsoft\Windows", writable: true))
{
    ...
}

暫無
暫無

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

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