我有许多使用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远程处理中使用本地管理员帐户。还有其他方法可以远程获取丢失了域信任关系的虚拟机以重新加入域吗?

最佳答案

有趣的问题。 PSExecnetdom的组合可以工作吗?我没有信任关系破裂的VM,因此无法测试该想法。

无论如何,PSExec具有用于用户名和密码的参数-u-p。确保您知道本地管理员帐户。将其凭据传递给PSExec应该提供一个远程 shell ,即使信任关系断开。 Netdom.exe或Powershell脚本可用于将计算机重新加入域。

另一个选择是更改计算机帐户的策略。将“计算机配置\ Windows设置\安全设置\本地策略\安全选项\域成员:最大计算机帐户密码使用期限”设置为0的GPO会将计算机帐户密码设置为永不过期。但是,这可能会引起一些安全问题。

编辑

使用psexec打开Shell session 。像这样
psexec -u computer\administrator -p password \\computer cmd
获得 shell 程序后,尝试并尝试使用netdom命令。从域中删除计算机,然后将其添加到域中。 Netdom join和netdom remove支持凭据传递,因此请提供有效的域帐户凭据。知道确切的命令语法后,将值保存到脚本文件中,然后像这样用psexec启动它,
psexec -u computer\administrator -p password \\computer c:\myScript.cmd

10-07 16:40