powershell - 如何调用“Invoke-MgSubscribeGroup”?
问题描述
我想以这种方式调用一个 PowerShell cmdlet :Invoke-MgSubscribeGroup
Invoke-MgSubscribeGroup -GroupId da2d17a7-64a5-43e5-9d95-7b70333dd78c
@{ UserId = "ed3d927d-7999-459f-955d-2afc272bd4d4" }
(拆分为多行以提高可读性)
调用它时,我收到一条错误消息:
找不到接受参数“System.Collections.Hashtable”的位置参数。
由于我对PowerShell 的了解并不深入,因此我必须对如何传递哈希表有一些错误的理解,或者我误解了文档中的内容:
...要创建下面描述的参数,请构建一个包含适当属性的哈希表...
我的问题
调用Invoke-MgSubscribeGroup
cmdlet 并传递用户 ID 的正确语法是什么?
解决方案
要详细说明您自己的答案:
PowerShell 的语法图- 通过Invoke-MgSubscribeGroup -?
或本地可用Get-Command -Syntax Invoke-MgSubscribeGroup
- 包含所有相关信息。
也就是说,它们不容易阅读,尤其是在本地,而且还有未来改进的空间。
Invoke-MgSubscribeGroup
-GroupId <String>
# ...
Invoke-MgSubscribeGroup
-InputObject <IGroupsIdentity>
# ...
每个(部分)引用代表一个不同的参数集,即代表不同特征组的参数的唯一组合。
-GroupId
并且在不同-InputObject
的参数集中并且对每个参数集都是专有的,告诉您不能在给定的调用中同时使用它们(它们是您错误地尝试的方式),即它们是互斥的。此外,鉴于参数名称
-GroupId
和-InputObject
未包含在意味着您只能将命名参数传递给它们,而不是位置参数 - 也就是说,您必须在参数之前使用参数名称绑定到这些参数;例如,而不仅仅是.[...]
-GroupId foo
foo
按照惯例,一个名为的参数
-InputObject
通常用于表示可以通过管道提供的值,正如参数的描述所证明的那样Accept pipeline input: True
- 在本地,您可以使用Get-Help -Full Invoke-MgSubscribeGroup
or - parameter-specifically - withGet-Help Invoke-MgSubscribeGroup -Parameter InputObject
通常,多个输入对象只能(有意义地)通过管道提供;也就是说,
-InputObject
通常只是一个实现细节,其目的是促进管道输入- 请参阅GitHub 问题 #4242。GitHub issue #4135建议让语法图直接反映哪些参数接受管道输入。
关于 's 的文档的复杂问题Invoke-MgSubscribeGroup
,特别是(通常看起来非常稀疏):
帮助主题不包含示例(您通常可以在本地请求
Get-Help -Examples Invoke-MgSubscribeGroup
)-InputObject
参数的数据类型,<IGroupsIdentity>
(Microsoft.Graph.PowerShell.Models.IGroupsIdentity
)似乎没有自己的文档;它仅在帮助主题的“注释”部分中描述为接受哈希表(@{ ... }
) 以及支持的条目列表(键和值类型)。
所有这一切:您可以通过管道传递您的哈希表,如下所示:
@{
UserId = 'ed3d927d-7999-459f-955d-2afc272bd4d4'
GroupId = 'da2d17a7-64a5-43e5-9d95-7b70333dd78c'
} | Invoke-MgSubscribeGroup
与传递参数相比,这种方法的优势-InputObject
在于它允许您传递多个哈希表以进行操作。
推荐阅读
- graphql - Apollo-tooling:在另一个定义的类型中包含一个定义的类型
- python - 将多项式拟合转换回图像空间
- r - 将多个数据框(df 列表)写入 df 名称 == 工作表名称的 excel 工作表
- python-3.x - 无法在 Ubuntu 18.04 中使用 pip 安装 Ta-Lib
- java - java.lang.UnsatisfiedLinkError:java.library.path 中没有 jniortools
- javascript - 名为“记录”的变量如何在函数中传递?
- r - 在R中的数据表列中删除一个单词
- c - 如何将字符数组分配给字符串文字
- autodesk-forge - 在 Forge Viewer 中更改装配颜色
- swift - 有没有办法在函数指针中设置协议的数据类型?