通过Invoke-command运行Reset-ComputerMachinePassword时拒绝访问

时间:2015-01-21 13:40:15

标签: powershell powershell-remoting invoke-command

我使用以下命令重置远程计算机' 密码。

$user="Domain\domainadmin";
$pass="dapassword" | ConvertTo-SecureString -AsPlainText -Force;
$creds=New-Object System.Management.Automation.PSCredential -ArgumentList $UserName, $pass;
Invoke-Command -Credential $creds -ComputerName "DomainControllerMachine" -ScriptBlock{ 
$ComputerName = @"
SomeRemoteHost
"@
Import-Module ActiveDirectory; 
Reset-ComputerMachinePassword -Server ${ComputerName};
}

我一直在接受访问被拒绝'错误。

This command cannot be executed on target computer('DomainControllerMachine') due to following error: Access is
 denied.
    + CategoryInfo          : InvalidOperation: (DomainControllerMachine:String) [Reset-ComputerMachinePasswor
   d], InvalidOperationException
    + FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.ResetCompute
   rMachinePasswordCommand

我使用的帐户具有ActiveDirectory的所有级别访问权限。因此,用于身份验证的凭据不会出​​现问题。

如果我在' DomainControllerMachine'上运行相同的命令(以同一用户身份登录)它工作正常。

Import-Module ActiveDirectory; 
Reset-ComputerMachinePassword -Server "SomeRemoteHost";

即使是上面的整个invoke-command块也可以在DomainControllerMachine上抱怨。 但是,当我通过Invoke-Command或Enter-PSSession远程执行此操作时,我得到了可怕的访问被拒绝错误..

我在没有运气的机器上设置WSManCredSSP(客户端,委托和服务器)之后也尝试使用CredSSP。

我可能错过了什么,或者有更好的方法来处理这种情况?

1 个答案:

答案 0 :(得分:1)

在我看来,您正在域控制器上运行Reset-computermachinepassword命令。据我所知,它应该在需要使用-server字段中的DC名称重置的计算机上运行。

要执行此操作,您需要在需要重置凭据的计算机上运行该命令:

Reset-Computermachinepassword -server "DomainControllerMachine" -credential $PScredential

如果计算机启用了PowerShell远程处理,您可以尝试使用PSsession远程执行此操作。您需要指定一种不同的身份验证方法来访问已失去对域的信任的计算机。

您可以使用Credssp但这只有在您的GPO允许将您的凭据委派给目标计算机时才有效。 或者您可以使用基本身份验证。但要实现这一目标,Target必须接受未加密的流量。

远程执行此操作的命令可能如下所示:

$session = new-PSSession "targetcomputer" -Authentication Basic -Credential  "Domain\domainadmin"
Invoke-Command -Session $session -scriptblock {Reset-Computermachinepassword -server "Domain\domainadmin"}