博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
有意思的Alias参数
阅读量:6709 次
发布时间:2019-06-25

本文共 1308 字,大约阅读时间需要 4 分钟。

1. 最简单的方式,运行正常。

PS C:\> Get-Service -Name BITS -ComputerName localhost

 

2. 自己构造一个对象,试图通过管道将主机名传递下去,但是不行,因为-ComputerName只接受byPropertyName的方式,而命令中的PropertyName却叫做ID。

PS C:\> [PSCustomObject]@{ 'ID' = 'localhost' } | Get-Service -Name BITS

Get-Service : The input object cannot be bound to any parameters for the command either because the command does not take pipeline input or the input and its properties do not match any of the parameters that take pipeline input.
At line:1 char:43
+ [PSCustomObject]@{ 'ID' = 'localhost' } | Get-Service -Name BITS
+ ~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (@{ID=localhost}:PSObject) [Get-Service], ParameterBindingException
+ FullyQualifiedErrorId : InputObjectNotBound,Microsoft.PowerShell.Commands.GetServiceCommand

 

3. 有什么变通的办法呢?自己构造一个函数,然后就能随心所欲地定制PropertyName了;加上Alias参数还能进一步变化。

function g-s{   [CmdletBinding()]    Param (      [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true,Position=0)]      [Alias('ID')]      [String]$Param1,      [String]$Param2    )    Begin { }    Process { Get-Service -ComputerName $Param1 -Name $Param2}    End { }}

PS C:\> [PSCustomObject]@{ 'Param1' = 'localhost' } | g-s -Param2 BITS

PS C:\> [PSCustomObject]@{ 'ID' = 'localhost' } | g-s -Param2 BITS

转载于:https://www.cnblogs.com/IvanChen/p/6491601.html

你可能感兴趣的文章
POJ 3259 Wormholes
查看>>
SQL*Loader使用详解(一)
查看>>
hdu 5012(bfs)
查看>>
hdu2795 线段树 贴广告
查看>>
如何快速带领实习生进入角色
查看>>
用ListView实现对数据库的内容显示
查看>>
用Codis实现Redis分布式集群
查看>>
时间、时间戳相关小结 - iOS
查看>>
uvm_factory——我们的工厂(一)
查看>>
amfphp中文乱码解决方法
查看>>
LDAP学习笔记
查看>>
Mysql增加、删除和修改列属性和约束,和一些有用的查询语句
查看>>
discuz@功能的代码
查看>>
Java日志记录--log4j and logback
查看>>
【angularjs】使用angular搭建项目,获取dom元素
查看>>
leetcode1034
查看>>
JSP学习
查看>>
python实现定时发送qq消息
查看>>
Foobar音乐播放器——最佳音乐播放器 - imsoft.cnblogs
查看>>
416. Partition Equal Subset Sum/698. Partition to K Equal Sum Subsets - recursion 待续
查看>>