2

假设我有两个 cmdlet,“new-foo”和“do-bar”。两个 cmdlet 都需要对服务进行身份验证才能执行它们的操作,并且 'do-bar' 需要一个 foo。今天,我可以做到:

new-foo -host localhost -username user -password password -whateverOtherArgs

我可以这样做:

do-bar -host localhost -username user -password password -foo myFoo

我什至可以将它们链接到管道上传递 foo ,例如:

new-foo <blah blah> | do-bar -host localhost -username user -password password

但我不知道如何传递公共参数,例如服务位置和管道元素之间的凭据。如果我有一堆我的 cmdlet 链接在一起,我只想在第一次传递凭据,然后在管道的其余部分重新使用这些凭据。

我错过了什么,似乎这应该很明显......

4

3 回答 3

1

您可以让 New-Foo 吐出一个对象,其中包含 do-bar 感兴趣的原始对象以及服务位置和凭据作为属性。接受此对象作为参数,然后在用户未提供 ServiceLocation 或 Credential 参数时提取您需要的数据。

于 2010-01-22T20:27:07.830 回答
0

您是在开发这个 cmdlet,还是只是在脚本中使用它们?如果您使用任何 OOP 语言编写这些 cmdlet,我认为一种方法是您有一个基本 cmdlet 类,并且所有其他 cmdlet 都应该扩展该基本 cmdlet 类。在这种情况下,基本 cmdlet 类应该初始化一个存储您的凭据的对象,并有一个 cmdlet 来请求凭据,从而初始化该对象。因此,扩展基类的所有其他 cmdlet 都可以在此对象中查找凭据。

于 2013-04-03T13:54:23.870 回答
0

Get-Credential是否涵盖您需要的内容。

于 2010-01-22T19:28:41.707 回答