C# 使用C在域上保留具有快照的虚拟机#

C# 使用C在域上保留具有快照的虚拟机#,c#,windows,powershell,vmware,hyper-v,C#,Windows,Powershell,Vmware,Hyper V,我正在尝试在域上保留具有快照的虚拟机? 目前,如果我定期关闭这些机器或恢复到以前的快照,它们往往会在大约30天后从域中退出 我正在考虑在启动时运行一个小应用程序\服务,检查机器是否在域中,如果不在域中,则将其添加回去 我想通过C#实现这一点,如果可能的话,可以让域管理员密码更安全一点吗 我找到的唯一可能的方法是通过PowerShell执行,但我必须手动输入域用户名\密码 Test-ComputerSecureChannel -Repair -Credential 这种情况发生在内置Hyper-

我正在尝试在域上保留具有快照的虚拟机? 目前,如果我定期关闭这些机器或恢复到以前的快照,它们往往会在大约30天后从域中退出

我正在考虑在启动时运行一个小应用程序\服务,检查机器是否在域中,如果不在域中,则将其添加回去

我想通过C#实现这一点,如果可能的话,可以让域管理员密码更安全一点吗

我找到的唯一可能的方法是通过PowerShell执行,但我必须手动输入域用户名\密码

Test-ComputerSecureChannel -Repair -Credential
这种情况发生在内置Hyper-V和VMware的机器上


感谢您的帮助

计算机帐户的密码与用户帐户类似,即使您从未与它们进行过交互。在AD域中,计算机密码用于建立到域的安全通道。默认情况下,计算机帐户密码不会过期。但默认情况下,计算机每30天更新一次密码()

在您的例子中,您拍摄了虚拟机的快照。之后,这台机器在某个时间点(<30天)更改了密码。还原回快照后,您的计算机再次使用其旧密码,该密码与AD中的密码不匹配

总之,您的计算机不再连接到域,并且不信任重新创建安全通道。因此,您不能使用计算机上的任何东西重建它(如计算机帐户或域中的任何其他帐户)。您必须通过新的身份验证重新获得信任

我不建议在任何地方硬编码任何凭据,尤其是域管理员的凭据。您甚至可以从C#(或任何)二进制文件中反转密码。这只是一个努力的问题(不一定是时间!)

我能想到的唯一解决办法是延长计算机帐户密码更新的期限。如果您可以确定一个合理的时间跨度,在这个时间跨度中,您可以确定快照肯定不会比这个时间跨度早,那么您可以通过GPO()修改续订间隔:

  • 转到
    计算机配置\Windows设置\Security Settings\Local Policies\Security Options
  • 在那里,您可以激活设置
    域成员:最大计算机帐户密码期限
    ,并将其设置为1到999天之间的值
  • 它必须应用于包含虚拟机的计算机帐户的位置。它不一定要应用于您的DCs,因为计算机本身正在更改其密码。更改不是由域(控制器)发起的


    安全考虑:间隔越大,暴力攻击的时间越长。明智地选择。

    计算机帐户具有与用户帐户类似的密码,即使您从未与它们交互。在AD域中,计算机密码用于建立到域的安全通道。默认情况下,计算机帐户密码不会过期。但默认情况下,计算机每30天更新一次密码()

    在您的例子中,您拍摄了虚拟机的快照。之后,这台机器在某个时间点(<30天)更改了密码。还原回快照后,您的计算机再次使用其旧密码,该密码与AD中的密码不匹配

    总之,您的计算机不再连接到域,并且不信任重新创建安全通道。因此,您不能使用计算机上的任何东西重建它(如计算机帐户或域中的任何其他帐户)。您必须通过新的身份验证重新获得信任

    我不建议在任何地方硬编码任何凭据,尤其是域管理员的凭据。您甚至可以从C#(或任何)二进制文件中反转密码。这只是一个努力的问题(不一定是时间!)

    我能想到的唯一解决办法是延长计算机帐户密码更新的期限。如果您可以确定一个合理的时间跨度,在这个时间跨度中,您可以确定快照肯定不会比这个时间跨度早,那么您可以通过GPO()修改续订间隔:

  • 转到
    计算机配置\Windows设置\Security Settings\Local Policies\Security Options
  • 在那里,您可以激活设置
    域成员:最大计算机帐户密码期限
    ,并将其设置为1到999天之间的值
  • 它必须应用于包含虚拟机的计算机帐户的位置。它不一定要应用于您的DCs,因为计算机本身正在更改其密码。更改不是由域(控制器)发起的


    安全考虑:间隔越大,暴力攻击的时间越长。明智地选择。

    据我所知,虚拟机不应该像这样从域中删除,不。当你说“还原到旧快照”时,这是添加到域之前的快照吗?你是否重复使用虚拟机名称-他们是否有可能因为添加了不同的虚拟机而使用相同的名称覆盖其注册而离开域?但是你是对的,你需要输入域管理员凭据才能将机器添加到域中,我猜也需要修复。我认为这是不可避免的。我认为最好弄清楚它们为什么会从域中掉下来。据我所知,虚拟机不应该像这样从域中掉下来,不。当你说“还原到旧快照”时,这是添加到域之前的快照吗?你是否重复使用虚拟机名称-他们是否有可能因为添加了不同的虚拟机而使用相同的名称覆盖其注册而离开域?但是你是对的,你需要输入域管理员凭据才能将机器添加到域中,我猜也需要修复。我认为这是不可避免的。我认为最好弄清楚他们为什么会从域名上掉下来。