当前位置: 首页 > 知识库问答 >
问题:

使用对象参数值动态调用powershell cmdlet

欧阳狐若
2023-03-14

我已经创建了自定义PowerShell cmdlet,并且正在为它们编写测试脚本。

我得到cmdlet的列表,并且我必须向它传递一个非字符串类型的对象。我尝试使用Invoke-Expression,但我得到一个错误,它使用字符串名称作为参数值。

$cmd = @()
$cmd += Get-Cmdlet1
$cmd += Get-Cmdlet2
$cmd += Get-Cmdlet3
foreach($c in $cmd)
{   
    $ret1 =  $c + " -connection "
    $ret = Invoke-Expression "$ret1 $($conn)"
    $ret >> C:\Output.txt
}
Invalid input: System.String is not supported
Parameter name: Connection

共有1个答案

贺宜修
2023-03-14

这样试试:

$cmd = @()
$cmd += Get-Command Get-Cmdlet1
$cmd += Get-Command Get-Cmdlet2
$cmd += Get-Command Get-Cmdlet3
foreach($c in $cmd)
{   
    &$c -connection $conn >> C:\output.txt
}

如果您将$conn放在一个双引号字符串中,PowerShell会将该对象转换为一个字符串。此外,此$cmd=get-cmdlet1执行get-cmdlet1。不确定这是否是您的意图,因为您似乎希望在foreach循环中执行cmdlet。

 类似资料:
  • 问题内容: 我正在寻找一个窍门。我知道如何在JavaScript中调用动态的任意函数,并传递特定的参数,如下所示: 我知道如何使用内部的集合传递可选的,无限制的参数,但是,我不知道如何发送任意数量的参数以动态发送给它;我该如何完成这样的工作,但是要有任意数量的可选参数(不要使用丑陋的– )? 问题答案: 使用函数的apply方法:- 编辑 :在我看来,这将是一个稍微的调整会更有用: 这将在浏览器之

  • 这是我的家长课 然后我创建了一个列表 然后我向objList添加了许多父对象。 现在我想根据类中字段的值过滤这些对象。但是我只会动态地得到字段名。我想为此使用流。 这里getAttrib2()有所不同。它可以是getAttrib1()或getAttrib3()。 所以我需要动态函数调用。我们能用谓词实现它吗。不幸的是,我对谓词对象一无所知。请详细解释你的答案,里面有所有的概念。

  • 问题内容: 我正在构建一个API应用程序,该应用程序实质上允许用户构建一个文档,该文档可以按他们想要的方式进行结构化,并将存储在Elasticsearch中。本质上,我为用户提供了一个简单的界面来访问我们的Elasticsearch实例。我试图使实现尽可能简单。到目前为止,这是我要处理的内容。 预期主体的对象: 简单实施: 这可以正常工作,但它在源中包含索引,类型和ID。我真正想做的只是在建立索引

  • 我在类中有一个签名为的方法。 我有一个调用方法的代码块: 如果我想测试databaseService.save(user)没有被调用,那么我如何用Mockito(3.3.3版)来做呢?

  • 当我在输入字段中输入object fields值时,我想从ArrayList中删除一个对象。 我有一个超类,我将添加不同米的一般信息。 然后我有一个时钟类,它扩展了超类,并有更多的值。 然后我有一个archive类,它创建了一个arrayList,其中包含不同的对象,并且当用户收到一个字段的提示时,会有一个删除对象的方法,在该字段中,他们可以将“regNum”作为字符串键入。 然后计划是,它迭代列

  • 我陷入了一个问题,需要在反序列化过程中使用和将解析对象的引用设置为其子对象。 为了描述这个问题,下面是类结构的简单表示。 通过这种结构,我可以通过向我的 提供 来在 中设置,例如: 我知道,我可以添加额外的到我的,但我不知道如何提供我的对象的引用,该对象正在被解析(即时)到对象? 任何帮助将不胜感激!