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

PowerShell中如何以内联语法在Get-AdUser命令中使用Read-Host?

PowerShell 动态AD用户查询的正确语法

你原来的写法无法生效,因为单引号包裹的字符串里,{Read-Host...}只会被当作普通文本,不会执行Read-Host命令。下面是两种可行的实现方式:

方式一:单行子表达式嵌入

直接用PowerShell的子表达式$()执行Read-Host,将结果动态插入过滤器字符串:

# 用双引号包裹过滤器,配合转义的双引号
Get-Aduser -Filter "Surname -like `"$(Read-Host -Prompt 'User surname?')`"" -Properties * | Format-List

# 或者用字符串格式化拼接(可读性更好)
Get-Aduser -Filter ('Surname -like "{0}"' -f (Read-Host -Prompt 'User surname?')) -Properties * | Format-List

方式二:分步/单行变量传递

先将用户输入存到变量,再代入过滤器(逻辑更清晰,也可以写成单行):

# 分步写法
$surname = Read-Host -Prompt 'User surname?'
Get-Aduser -Filter "Surname -like `"$surname`"" -Properties * | Format-List

# 单行写法用分号分隔命令
$surname = Read-Host -Prompt 'User surname?' ; Get-Aduser -Filter "Surname -like `"$surname`"" -Properties * | Format-List

可选:模糊匹配优化

如果需要匹配包含输入内容的所有姓氏,在过滤器里添加通配符*:

Get-Aduser -Filter "Surname -like `"*$(Read-Host -Prompt 'User surname?')*`"" -Properties * | Format-List

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 23:52:07