如何让PowerShell查询AD组成员脚本支持窗口输入?
解决方法
- 核心是把用户输入的组名存储到变量,再把变量传给
Get-ADGroupMember的-Identity参数,这是PowerShell里衔接输入和命令的常规方式。
基础实现代码
# 接收用户输入的组名并存储到变量 $groupName = Read-Host -Prompt 'Enter Group Name' # 使用变量作为参数,获取组成员并输出名称 Get-ADGroupMember -Identity $groupName | Select-Object Name
为什么你之前的代码报错?
你写的Read-Host -Prompt 'Enter Group Name' >> Get-ADGroupMember -identity Get-Host有两个关键问题:
>>是文件重定向符号,用来把命令输出写入文件,不是用来传递参数的;Get-Host是获取当前PowerShell主机信息的命令,根本不是获取你输入内容的方式,必须用变量存下输入值才能传递给后续命令。
可选优化:增加错误处理
如果用户输入的组名不存在,上面的代码会直接抛出系统错误,你可以加个简单的错误处理,让提示更友好:
$groupName = Read-Host -Prompt 'Enter Group Name' try { Get-ADGroupMember -Identity $groupName -ErrorAction Stop | Select-Object Name } catch { Write-Host "错误:找不到名为 '$groupName' 的AD组,请检查输入是否正确" -ForegroundColor Red }
内容的提问来源于stack exchange,提问作者Takoda_Haas
相关产品推荐
相关产品推荐

