You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell AD用户组操作脚本运行后闪退、无法显示用户所属组结果如何解决

问题分析
  • 脚本最后查询用户组的逻辑存在变量覆盖错误:你写的foreach($user in $groups)会把之前用户输入的用户名变量$user覆盖为AD组名,导致最后实际执行的是查询每个AD组的所属组,完全没有查询目标用户的组权限,自然看不到你要的结果
  • 若你是直接双击运行ps1脚本,PowerShell默认执行完所有命令后会自动关闭窗口,即便有输出也会一闪而过
修正后可用脚本
$user =  Read-host "Please enter user"
$groups = 'M365-E3-Laptop-Office-Desktop','M365-E3-Laptop-EXO'
$groupsremove = 'M365-F3-WebOnly-Apps'

foreach($group in $groups){
  Add-ADGroupMember -Identity $group -Members $user
}

foreach($removeGroup in $groupsremove){
  # 加-Confirm:$false可跳过删除确认提示,不需要可以删除该参数
  Remove-ADGroupMember -Identity $removeGroup -Members $user -Confirm:$false
}

# 直接查询目标用户的所属组,输出名称
Get-ADPrincipalGroupMembership $user | Select-Object Name

Start-Sleep -Seconds 30
# 额外加按任意键退出逻辑,避免没看清内容窗口就关闭
Read-Host "按任意键退出"
改动说明
  • 移除了错误的遍历组的查询循环,直接用最初输入的用户名查询所属组,输出结果就是目标用户的所有AD组列表
  • 调整了删除组循环的变量名,避免和原有变量名冲突引发逻辑错误
  • 新增可选的跳过删除确认参数,无需手动点确认即可完成组移除操作
  • 新增按键退出逻辑,就算30秒sleep结束也不会立刻关窗口,需要你手动按任意键才会关闭

内容的提问来源于stack exchange,提问作者Moe Ismail

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 23:36:08