首页 > 解决方案 > 用户第一次没有更改注册表(Shell 值),但在第二次尝试远程更改时进行了更改

问题描述

我制作了一个窗口应用程序,该应用程序的注册表外壳值发生了变化。当 AD 管理员用户第一次以完全权限登录时,应用程序第一次提示并且用户使用 MFA 选项进行身份验证,然后用户第一次无法更改注册表shell 的值,但是当他第二次更改时,他确实成功更改了注册表。所有场景都只在 RDP 上进行。

我们已经完全控制了将注册表权限更改为管理员用户。

RegistryKey localKey = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.CurrentUser, RegistryView.Registry64);
localKey = localKey.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", true);
localKey.SetValue("Shell", "explorer.exe");

RegistryKey localKey1 = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.CurrentUser, RegistryView.Registry32);
localKey1 = localKey1.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", true);
localKey1.SetValue("Shell", "explorer.exe");

Thread.Sleep(2000);
Process.Start(@"C:\Windows\system32\userinit.exe");

标签: c#.netregistry

解决方案


推荐阅读