使用域(远程计算机上)的本地凭据访问远程注册表

标题有点长,但我会尝试解释:我正在尝试从一台机器(连接到一个域)连接到另一台机器,该机器也连接到一个域但丢失了kerberos的supportedencryptiontypes 。 路径:HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System \ kerberos \ parameters

基本上,当此值发生变化时,域管理员无法管理此计算机或访问它,就好像此计算机不再位于域中一样。 但当我将此值更改为正确的值(当我与本地管理员用户本地连接)时,我获得了完整的管理权限,似乎一切都很好,再次花花公子。

基本上我正在尝试做的是远程更改此值,这意味着使用它自己的本地管理员凭据连接到计算机的注册表并更改值。

我没有发布任何代码ATM,因为我没有,除了使用当前登录的用户凭据远程访问注册表的正常方式。

如果需要,将发布此代码。

我在SO上找到了一个很好的课程: https : //stackoverflow.com/a/1197430/4547223

我在这堂课上写了一个快速的样本并取得了成功:

 ... using Microsoft.Win32; using System.Net; ... string hostName = 192.168.1.1; using (new NetworkConnection(@"\\" + hostName + @"\admin$", new NetworkCredential(@"ad\administrator", "TopSecret"))) { using (RegistryKey remoteHklm = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, hostName)) { using (RegistryKey serviceKey = remoteHklm.OpenSubKey("System\\CurrentControlSet\\Services", true)) { if (serviceKey != null) { foreach (string key in serviceKey.GetSubKeyNames()) { Console.WriteLine(key); } } } } }