4

DisableTaskMgrレジストリの値を変更できません。これが私がこれまでに試みていることです:

RegistryKey taskMgr = Registry.CurrentUser.OpenSubKey("Software").OpenSubKey("Microsoft").OpenSubKey("Windows").OpenSubKey("CurrentVersion").OpenSubKey("Policies");

string[] subKeys = taskMgr.GetSubKeyNames();
bool foundSystemKey = false;
foreach (string s in subKeys)
  if (s == "System")
  {
    foundSystemKey = true;
    break;
  }
if (!foundSystemKey)
{
  taskMgr = taskMgr.CreateSubKey("System"); 
// here is where I'm getting the exception even when I do OpenSubkey("Policies" , true)
}

taskMgr.OpenSubKey("System", true);
taskMgr.SetValue("DisableTaskMgr", 1); // 0 to enable, 1 to disable.

私も次のことを試しましたが、最後の行の実行中に同じエラーがスローされるのを確認しています。

RegistrySecurity myRegSecurity = taskMgr.GetAccessControl();
string User = System.Environment.UserName;
myRegSecurity.ResetAccessRule(new RegistryAccessRule(User, RegistryRights.FullControl , AccessControlType.Allow));
taskMgr.SetAccessControl(myRegSecurity); // right here ..

何が悪いのか説明はありますか?前もって感謝します :)

4

1 に答える 1

5

権限に問題がある可能性があります。

regeditを開き、キーを見つけます(「ポリシー」)キーを右クリックして「権限」を選択します

権限は継承されますが、「Everyone」を追加してコードを再実行してみてください。動作する場合は、「Everyone」を削除して新しいグループ名を決定し、ドメインまたはローカルマシンのいずれかに新しいグループを追加します。次に、新しいグループをキーに追加してから、アクセス許可を必要とするすべてのユーザーを新しいグループに追加します。

于 2012-07-15T18:32:20.297 に答える