remove-computer cmdlet访问被拒绝

时间:2014-01-31 15:25:10

标签: powershell active-directory

我正在尝试创建一个脚本,使用remove-computer -unjoincredentials domain\admin -passthru从域中删除计算机但是,我一直收到错误声明

remove-computer : Failed to unjoin computer 'web140127105714' from domain 'domain.com' with the following error message: Access is denied. At line:1 char:1 + remove-computer -UnjoinDomainCredential domain\admin -PassThru + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OperationStopped: (web140127105714:String) [Remove-Computer], InvalidOperationException + FullyQualifiedErrorId : FailToUnjoinDomain,Microsoft.PowerShell.Commands.RemoveComputerCommand

我使用的帐户是具有完全访问权限的域管理员。我已经确认该帐户可以手动取消加入domian。

3 个答案:

答案 0 :(得分:2)

控制台上的某些操作要求您使用提升的PowerShell会话。您可以通过右键单击并选择“以管理员身份运行”来启动PowerShell会话作为管理员。然后在该控制台会话中运行remove-computer cmdlet。管理员PowerShell控制台的默认标题是“管理员:Windows PowerShell”。你可以通过那种方式识别窗口

答案 1 :(得分:1)

没有-unjoincredentials

这样的参数

http://technet.microsoft.com/en-us/library/hh849816.aspx

答案 2 :(得分:1)

听起来像OP找到了他的答案,所以这里是未来读者的一个PowerShell自我提升的例子。添加到脚本的顶部,它将自动重新启动,因此我们无需右键单击并以“以管理员身份运行”。

$WID=[System.Security.Principal.WindowsIdentity]::GetCurrent();
$WIP=new-object System.Security.Principal.WindowsPrincipal($WID);
$adminRole=[System.Security.Principal.WindowsBuiltInRole]::Administrator;
If ($WIP.IsInRole($adminRole)){
}else {
  $newProcess = new-object System.Diagnostics.ProcessStartInfo 'PowerShell';
  $newProcess.Arguments = $myInvocation.MyCommand.Definition
  $newProcess.Verb = 'runas'
  [System.Diagnostics.Process]::Start($newProcess);Write-Host 'Prompting for Elevation'
  exit
}
#####################
# Add Scripts Below #
#####################
Write-Host 'ElevatedCodeRunsHere';
Write-Host 'Press any key to continue...'
$null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown')

Powershell start-process script calls a second script - how to make one script only