Powershell多个AddParameter C#

时间:2017-05-23 09:42:09

标签: c# powershell parameters

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

但是当我输入第二个AddParameter电话时,它失败并显示错误:

  

System.Management.Automation.ParameterBindingException

代码:

PowerShell shell = PowerShell.Create().AddCommand("Get-NetAdapter");
shell.AddParameter("name", "Ethernet*");
shell.AddParameter("InterfaceIndex", "5");

foreach (PSObject result in shell.Invoke())
{
    Console.WriteLine("{0,-24}{1}", result.Members["Name"].Value,
                                    result.Members["InterfaceDescription"].Value);
} // End foreach.

看起来它只接受1个参数。

还有一个AddParameters,但我无法正常工作。

任何人都有这方面的经验吗?

1 个答案:

答案 0 :(得分:0)

您无法与public class Converter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { TextBlock content = value as TextBlock; if(content != null) { string text = content.Text; if(string.IsNullOrEmpty(text)) { DependencyPropertyDescriptor dpd = DependencyPropertyDescriptor.FromProperty(TextBlock.TextProperty, typeof(TextBlock)); if (dpd != null) dpd.AddValueChanged(content, OnTextChanged); } else { OnTextChanged(content, EventArgs.Empty); } } return Binding.DoNothing; } private void OnTextChanged(object sender, EventArgs e) { TextBlock textBlock = sender as TextBlock; string converterText = textBlock.Text; //set foreground based on text... textBlock.Foreground = Brushes.Violet; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotSupportedException(); } } cmdlet同时使用$("#btn_finish").click(function (e) { e.preventDefault(); ... name。这是因为它们属于不同的参数集,因此必须单独使用。

要查看该cmdlet的参数集的详细信息,请参阅此处:https://technet.microsoft.com/en-us/library/jj130867(v=wps.630).aspx

或者在PowerShell中使用InterfaceIndex

但是,如果在使用同一参数集中允许的参数时仍然无法添加参数,则可以尝试将这两个参数作为单个命令添加,如下所示(使用Get-NetAdapterGet-Help Get-NetAdapter例如,因为它们在同一参数集中被允许:namethrottlelimit}:

ByName

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

Get-NetAdapter

来源:https://msdn.microsoft.com/en-us/library/dn614674(v=vs.85).aspx