powershell - 信任关系丢失时如何重新加入域

标签 powershell remoting

我有许多虚拟机,它们使用 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 远程处理中使用本地管理员帐户。有没有其他方法可以远程让失去域信任关系的虚拟机重新加入域?

最佳答案

有趣的问题。将 PSExec 的组合和 netdom工作?我没有信任关系破裂的虚拟机,所以我无法测试这个想法。

不管怎样,PSExec有参数 -u-p对于用户名和密码。确保您知道本地管理员帐户。将其凭据传递给 PSExec即使信任关系破裂,也应该提供远程外壳。 Netdom.exe或者可以使用 Powershell 脚本将计算机重新加入域。

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

编辑

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

关于powershell - 信任关系丢失时如何重新加入域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18964407/

相关文章:

.net - 跨 DMZ 的代理调用

powershell - 使用 PowerShell,根据显示名称为用户设置 AD 主目录

azure - AzCosmosDBSqlContainer : "Object reference not set to an instance of an object."

regex - 需要识别文件名中的特殊字符

powershell - 根据一列的值分割一个csv文件

c# - PowerShell 远程处理 Lync、Active Directory 搜索域 Controller 时出现错误 "-2147016672"

powershell - 在调试项目上运行PowerShell脚本

.net - 客户端-服务器通信协议(protocol)的架构决策

c# - Protocol Buffer 有多快或多轻?

.net - 可以捕获环回流量的 Windows 数据包嗅探器?