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

如何让PowerShell提示输入参数?AD用户组查询脚本需求

实现AD用户组查询的PowerShell脚本

脚本使用前置说明

  • 确保电脑已安装AD模块(域控或安装了RSAT工具的客户端默认自带)
  • 若脚本无法运行,先以管理员身份打开PowerShell,执行Set-ExecutionPolicy RemoteSigned并按提示选Y确认执行策略

方案1:带弹窗输入的脚本

运行脚本后会弹出图形化输入框,输入AD账户名即可自动查询,适合习惯可视化操作的场景:

# 加载弹窗组件
Add-Type -AssemblyName Microsoft.VisualBasic

# 弹出输入框获取AD账户
$ADAccount = [Microsoft.VisualBasic.Interaction]::InputBox("请输入要查询的AD账户名", "AD用户组查询")

# 空输入校验
if (-not $ADAccount) {
    Write-Host "未输入账户名,脚本退出"
    exit
}

# 替换成你日常要查询的安全组名称,如需每次输入可改成下方注释的弹窗代码
$ADGroup = "你的目标安全组名称"
# $ADGroup = [Microsoft.VisualBasic.Interaction]::InputBox("请输入要查询的AD安全组名称", "AD用户组查询")

# 执行查询并处理结果
try {
    $userGroups = (Get-ADUser $ADAccount -Properties MemberOf).MemberOf
    # 匹配目标组(不区分大小写)
    $matchedGroups = $userGroups | Where-Object { $_ -match [regex]::Escape($ADGroup) }
    
    if ($matchedGroups) {
        Write-Host "`n用户 $ADAccount 属于以下目标组:" -ForegroundColor Green
        # 将组DN转换为易读的组名称输出
        $matchedGroups | ForEach-Object { (Get-ADGroup $_).Name }
    } else {
        Write-Host "`n用户 $ADAccount 不属于目标组 $ADGroup" -ForegroundColor Yellow
    }
} catch {
    Write-Host "`n查询失败:$($_.Exception.Message)" -ForegroundColor Red
}

方案2:控制台提示输入的脚本

若弹窗功能受限,用控制台交互更直接,运行脚本后在PowerShell窗口输入账户名回车即可:

# 控制台提示输入AD账户
$ADAccount = Read-Host "请输入要查询的AD账户名"

# 空输入校验
if (-not $ADAccount) {
    Write-Host "未输入账户名,脚本退出"
    exit
}

# 替换成你日常要查询的安全组名称
$ADGroup = "你的目标安全组名称"

# 执行查询并处理结果
try {
    $userGroups = (Get-ADUser $ADAccount -Properties MemberOf).MemberOf
    $matchedGroups = $userGroups | Where-Object { $_ -match [regex]::Escape($ADGroup) }
    
    if ($matchedGroups) {
        Write-Host "`n用户 $ADAccount 属于以下目标组:" -ForegroundColor Green
        $matchedGroups | ForEach-Object { (Get-ADGroup $_).Name }
    } else {
        Write-Host "`n用户 $ADAccount 不属于目标组 $ADGroup" -ForegroundColor Yellow
    }
} catch {
    Write-Host "`n查询失败:$($_.Exception.Message)" -ForegroundColor Red
}

优化说明

  • 替换了原命令的findstr /i,改用PowerShell原生的Where-Object + -match,语法更统一,还能自动把组的DN格式转换成易读的组名称
  • 加入空输入校验和错误捕获,避免脚本因输入为空或账户不存在直接崩溃
  • 结果用颜色区分,更直观

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 07:15:41