【问题标题】:Remove-ADPrincipalGroupMembership 'insufficient rights'删除-ADPrincipalGroupMembership '权限不足'
【发布时间】:2020-08-04 01:57:11
【问题描述】:

我有一个 Powershell 脚本,它可以从所有 AD 组中删除一个用户,但当我向它抛出一组组时它会因“权限不足”而失败,但在我删除单个组时不会。

$adcred = Get-Credential
$adUser = Read-Host 'Enter username'
$adGroups = Get-ADPrincipalGroupMembership -Identity $adUser | where {$_.name -ne 'Domain Users'}
Remove-ADPrincipalGroupMembership -Identity $adUser -MemberOf $adGroups -Credential $adcred

WARNING: Could not remove member(s) from ADGroup: '{-- snip --}'. Error is:
'Insufficient access rights to perform the operation'.
WARNING: Could not remove member(s) from ADGroup: '{-- snip --}'. Error is: 'Insufficient access rights to perform the operation'.
Remove-ADPrincipalGroupMembership : Could not remove member(s) to one or more ADGroup.
At line:1 char:1
+ Remove-ADPrincipalGroupMembership -Identity $adUser -MemberOf $adGrou ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (Microsoft.Activ...ement.ADGroup[]:ADGroup[]) [Remove-ADPrincipalGroupMembership], ADExcep
   tion
    + FullyQualifiedErrorId : 1,Microsoft.ActiveDirectory.Management.Commands.RemoveADPrincipalGroupMembership

但如果我使用相同的凭据手动输入一个组名,它会起作用。

Remove-ADPrincipalGroupMembership -Identity $adUser -MemberOf 'somegroup' -Credential $adcred

我的 Powershell Windows 在非域管理员帐户下运行,但我在脚本中提供了域管理员凭据。此外,如果我运行一个新的 Powershell 窗口“作为不同的用户”并提供我的域管理员凭据,那么即使我向它抛出一个集合,Remove-ADPrincipalGroupMembership 也将起作用。

【问题讨论】:

  • 我需要用今天早上学到的东西来完善我的帖子。如果我在以下行中手动编写它,我可以删除单个组或组数组:Remove-ADPrincipalGroupMembership -Identity $adUser -MemberOf 'group1','group2' -Credential $adcred。但是 Remove-ADPrincipalGroupMembership 根本不适用于 $adGroups 变量。所以我收集 $adGroups 变量的方式一定是我做错了。

标签: powershell active-directory


【解决方案1】:

这应该可以解决问题。而不是只给它一个字符串,而是给整个 AD 用户对象。

$adcred = Get-Credential
$adUser = Read-Host 'Enter username' | get-aduser
$adGroups = Get-ADPrincipalGroupMembership -Identity $adUser | where {$_.name -ne 
'Domain Users'}
Remove-ADPrincipalGroupMembership -Identity $adUser -MemberOf $adGroups -Credential $adcred

我已经进行了彻底的测试,并且可以正常工作。用户中的管道也是如此

$adcred = Get-Credential
$adUser = Read-Host 'Enter username'
$adGroups = Get-ADPrincipalGroupMembership -Identity $adUser | where {$_.name -ne 
'Domain Users'}
$aduser |  Get-Aduser | Remove-ADPrincipalGroupMembership -MemberOf $adGroups -Credential $adcred

【讨论】:

  • 感谢您对脚本用户部分的改进,但我的问题不在于用户;它是与团体。如上所述,控制台仅在我提供一组组时才会写入错误“执行操作的访问权限不足”——而不是在我提供单个组时。虽然我采纳了您的改进,但并没有解决问题。
  • 也许它是一个特定的组?你确认你可以单独做每个有问题的组吗?你的帖子只是说“如果我做一组。”
  • 它不限于特定的组。 $adGroups 中的任何组都会出现这种情况,但当这些组手动列出时,例如“-memberof 'group1','group2'
  • 尝试将此添加到脚本的开头 Set-ExecutionPolicy unrestricted -Scope CurrentUser -Force
  • 另外,只是为了进行健全性检查,运行此命令并共享输出 get-command Remove-ADPrincipalGroupMembership
猜你喜欢
  • 1970-01-01
  • 2021-05-06
  • 1970-01-01
  • 2020-07-15
  • 2018-11-06
  • 2014-10-24
  • 2018-12-07
  • 2020-07-22
  • 2015-10-10
相关资源
最近更新 更多