我有许多虚拟机,它们使用 PowerShell 脚本应用了快照。有时,虚拟机会失去与域的“信任关系”。这会破坏脚本,因为我无法再使用 PowerShell 远程访问机器并对其进行配置。
我怎么能够远程重置这些虚拟机的信任关系?也许存在不涉及远程处理的重新加入域的可能性?
除了手动重新加入域之外,任何替代解决方案都需要登录计算机并在本地执行此操作。我还没有找到其他可以做到这一点的方法。
到目前为止,我已经尝试编写一个脚本,以本地管理员身份远程进入该框:
$password = ConvertTo-SecureString "password" -AsPlainText -Force
$cred= New-Object System.Management.Automation.PSCredential ("Administrator", $password)
$sesh = new-pssession -computername "theMachine" -credential $cred
此时,我希望使用 PowerShell 重置密码或类似的东西来重置域信任关系。然而,这导致最后一行出现错误:Access is Denied
。
我认为您不能将本地管理员帐户与 PowerShell 远程处理结合使用。还有其他方法可以远程让失去域信任关系的虚拟机重新加入域吗?
答案1
发生这种情况的原因是加入域的计算机每 30 天会自动更改其计算机帐户密码。客户端会启动自己的密码更改并将其存储在 Active Directory 中。当您恢复到上次计算机帐户密码更改之前的快照时,存储在 AD 中的密码不再与计算机尝试用于登录域的密码匹配。
要在客户端计算机上禁用机器帐户密码更改:
1. Start Registry Editor.
2. Locate and then click the following registry subkey:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters
3. In the right pane, click the DisablePasswordChange entry.
4. On the Edit menu, click Modify.
5. In the Value data box, type a value of 1, and then click OK.
还,
我认为您不能将本地管理员帐户用于 PowerShell 远程处理
是的,你可以。你只是不能使用 Kerberos。而且由于没有 Kerberos 就无法进行相互身份验证,因此你需要将远程计算机添加到受信任主机列表中,以便能够使用 Powershell Remoting 访问它。