我正在编写一个 PowerShell 模块。我有一个 Get-MyPerson 函数,它接受一个 Identity 参数,调用一个 Web 服务并返回一个 PERSON 类型的对象(来自 Web 服务的返回类型)。
我现在正在处理一个 Set-MyPerson 对象来更新几个属性。我想要做的是:
Set-MyPerson 1234 -GolfHandicap 22
Get-MyPerson JDoe | Set-MyPerson -GolfHandicap 22
(后者以下 Get-ADUser | Set-ADUser 用法)
这就要求 Set-MyPerson 接受前者为 string 类型的参数,后者接受 Person 类型的参数,使用参数集来区分。
我具有适用于字符串的基本功能,但正在努力处理 Person 对象的参数。
[Parameter(ParameterSetName="Person",Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)]
[PERSON]$Person,
将无法工作,因为 PowerShell 无法识别 PERSON(如预期的那样):
Set-MyPerson:找不到类型 [PERSON]:确保已加载包含此类型的程序集。
如何让 PowerShell 识别我的 PERSON 类?