Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell多个AddParameter C#_C#_Powershell_Parameters - Fatal编程技术网

Powershell多个AddParameter C#

Powershell多个AddParameter C#,c#,powershell,parameters,C#,Powershell,Parameters,我在C#表单应用程序中运行PowerShell。我想向PowerShell命令添加多个参数 但当我输入第二个AddParameter调用时,它失败了,错误如下: System.Management.Automation.ParameterBindingException 代码: 看起来它只接受1个参数 还有一个添加参数的AddParameters,但我无法让它正常工作 有人对此有经验吗?您不能在使用Get-NetAdaptercmdlet的同时实际使用name和InterfaceIndex。这是

我在C#表单应用程序中运行PowerShell。我想向PowerShell命令添加多个参数

但当我输入第二个
AddParameter
调用时,它失败了,错误如下:

System.Management.Automation.ParameterBindingException

代码:

看起来它只接受1个参数

还有一个添加参数的
AddParameters
,但我无法让它正常工作


有人对此有经验吗?

您不能在使用
Get-NetAdapter
cmdlet的同时实际使用
name
InterfaceIndex
。这是因为它们属于不同的参数集,因此必须单独使用

要查看该cmdlet的参数集的详细信息,请参见此处:

或者在PowerShell中使用
获取帮助获取NetAdapter

但是,如果在使用同一参数集中允许的参数时添加参数仍然有问题,可以尝试将两个参数作为单个命令添加,如下所示(以
name
throttlelimit
为例,因为它们在同一参数集中是允许的:
ByName
用于
Get NetAdapter
):

或者,您也可以使用参数名称和值的字典:

IDictionary parameters = new Dictionary<String, String>();
parameters.Add("name", "Ethernet*");
parameters.Add("ThrottleLimit", 5);

PowerShell shell = PowerShell.Create().AddCommand("Get-NetAdapter")
   .AddParameters(parameters)
IDictionary参数=新字典();
添加(“名称”、“以太网*”);
添加(“ThrottleLimit”,5);
PowerShell shell=PowerShell.Create().AddCommand(“获取NetAdapter”)
.AddParameters(参数)

来源:

您不能将
名称
接口索引
Get-NetAdapter
cmdlet同时使用。这是因为它们属于不同的参数集,因此必须单独使用

要查看该cmdlet的参数集的详细信息,请参见此处:

或者在PowerShell中使用
获取帮助获取NetAdapter

但是,如果在使用同一参数集中允许的参数时添加参数仍然有问题,可以尝试将两个参数作为单个命令添加,如下所示(以
name
throttlelimit
为例,因为它们在同一参数集中是允许的:
ByName
用于
Get NetAdapter
):

或者,您也可以使用参数名称和值的字典:

IDictionary parameters = new Dictionary<String, String>();
parameters.Add("name", "Ethernet*");
parameters.Add("ThrottleLimit", 5);

PowerShell shell = PowerShell.Create().AddCommand("Get-NetAdapter")
   .AddParameters(parameters)
IDictionary参数=新字典();
添加(“名称”、“以太网*”);
添加(“ThrottleLimit”,5);
PowerShell shell=PowerShell.Create().AddCommand(“获取NetAdapter”)
.AddParameters(参数)

来源:

thx用于快速回复!我已经尝试过了,结果都是相同的错误消息。异常消息是:{“无法使用指定的命名参数解析参数集”。}啊,这是PowerShell错误。它告诉您不能同时使用“名称”和“接口索引”它们一起属于不同的参数集。您可以在此处或在PowerShell中通过
get help get netadapter
查看这些参数集。cmdlet的设计目的不是同时按索引和名称检索网络适配器,它必须是一个或另一个。您现在也有足够的信誉进行升级投票,仅供参考:)thx用于快速回复!我已经尝试过了,但结果都是相同的错误消息。异常消息是:{“无法使用指定的命名参数解析参数集”。}啊,这是PowerShell错误。它告诉您不能同时使用“名称”和“InterfaceIndex”它们一起属于不同的参数集。您可以在此处或在PowerShell中通过
get help get netadapter
查看这些参数集。cmdlet的设计目的不是同时按索引和名称检索网络适配器,它必须是一个或另一个。您现在也有足够的信誉进行升级投票,仅供参考:)
IDictionary parameters = new Dictionary<String, String>();
parameters.Add("name", "Ethernet*");
parameters.Add("ThrottleLimit", 5);

PowerShell shell = PowerShell.Create().AddCommand("Get-NetAdapter")
   .AddParameters(parameters)