标题有点长,但我会尽力解释:
我正在尝试从一台机器(连接到域)连接到另一台机器,该机器也连接到域但丢失了 kerberos 的 supportedencryptiontypes
。
小路:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\kerberos\parameters
基本上,当此值更改时,作为域管理员的我将无法管理或访问这台计算机,就好像这台计算机不再位于域中一样。 但是当我将这个值改回正确的值时(当我在本地与本地管理员用户连接时)我获得了完全的管理权限,看起来一切都很好,又很花花公子。
所以基本上我想做的是远程更改此值,这意味着使用它自己的本地管理员凭据连接到机器的注册表并改回该值。
我没有发布任何代码 ATM,因为我没有,除了使用当前登录的用户凭据远程访问注册表的正常方法。
当然会在需要时发布此代码。
最佳答案
我在 SO: https://stackoverflow.com/a/1197430/4547223 找到了一个很好的类(class)
我成功地用这个类编写了一个快速示例:
...
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);
}
}
}
}
}
关于c# - 使用域上的(远程计算机的)本地凭据访问远程注册表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28739477/