我有许多虚拟机,它们使用 PowerShell 脚本应用了快照。有时,虚拟机会失去与域的“信任关系”。这会破坏脚本,因为我无法再使用 PowerShell 远程处理进入机器并配置它们。
如何远程重置这些虚拟机的信任关系?也许有可能重新加入不涉及远程处理的域?
手动重新加入域的任何替代解决方案都需要登录计算机并在本地执行此操作。我还没有找到任何可以做到这一点的东西。
到目前为止,我已经尝试将一个脚本放在一起,该脚本以本地管理员身份简单地远程进入框:
$password = ConvertTo-SecureString "password" -AsPlainText -Force
$cred= New-Object System.Management.Automation.PSCredential ("Administrator", $password)
$sesh = new-pssession -computername "theMachine" -credential $cred
Run Code Online (Sandbox Code Playgroud)
在这一点上,我希望使用 PowerShell 来重置密码或类似的东西来重置域信任关系。但是,这会导致最后一行出现错误:Access is Denied
。
我认为您不能在 PowerShell 远程处理中使用本地管理员帐户。有没有其他方法可以远程让失去域信任关系的虚拟机重新加入域?
以下脚本在最后一行失败Get-WmiObject : Invalid namespace
:
$password = ConvertTo-SecureString "password" -AsPlainText -Force
$cred= New-Object System.Management.Automation.PSCredential ("domain\user", $password )
Write-Host "Entering PS Session..."
Enter-PSSession -Computer hyperVServer -Credential $cred
Start-Sleep -s 5
$server = "servername"
$query = "SELECT * FROM Msvm_ComputerSystem WHERE ElementName='" + $server + "'"
$VM = get-wmiobject -query $query -namespace "root\virtualization" -computername "."
Run Code Online (Sandbox Code Playgroud)
但是,当我将其一一输入控制台时,它运行没有问题。
Start-Sleep
由于一些时间问题,我添加了...... 会话需要几秒钟才能真正打开。任何想法为什么该行仅在作为脚本运行时才会失败?