我正在尝试创建一个脚本,使用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。
答案 0 :(得分:2)
控制台上的某些操作要求您使用提升的PowerShell会话。您可以通过右键单击并选择“以管理员身份运行”来启动PowerShell会话作为管理员。然后在该控制台会话中运行remove-computer cmdlet。管理员PowerShell控制台的默认标题是“管理员:Windows PowerShell”。你可以通过那种方式识别窗口
答案 1 :(得分:1)
没有-unjoincredentials
答案 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