PowerShell帮助文件显示所有参数不接受管道输入的问题咨询
PowerShell 5.1管道输入查询问题解答
这是PowerShell 5.1帮助系统的已知问题——部分环境下即使执行了Update-Help,Get-Help返回的参数“Accept pipeline input?”字段仍会错误显示为全False,并非你理解有误。
正确查询参数是否支持管道输入的方法:
通过
Get-Command查看参数元数据
直接获取cmdlet参数的管道输入属性,以Start-Service的-Name参数为例:(Get-Command Start-Service).Parameters['Name'].Attributes | Where-Object { $_ -is [System.Management.Automation.ParameterAttribute] }查看输出中的
ValueFromPipeline(按值接收管道输入)和ValueFromPipelineByPropertyName(按属性名接收)字段,值为True即表示支持对应方式的管道输入。直接测试管道命令
用实际命令验证是最直观的方式,比如:'wuauserv' | Start-Service若命令正常执行(成功启动服务),则说明参数支持管道输入。
针对按属性名接收的情况,用
Get-Member查看对象属性
如果要通过管道传递对象(而非纯字符串/值),先查看输出对象的属性是否匹配目标参数名:Get-Service -Name wuauserv | Get-Member若输出对象包含与目标参数同名的属性(比如
Name),则该参数支持按属性名接收管道输入。
内容的提问来源于stack exchange,提问作者P. Wormer
相关产品推荐
相关产品推荐

