“我不能执行”;netsh nps…“;Windows服务器(Radius服务器)上带有winform C#应用程序的命令

“我不能执行”;netsh nps…“;Windows服务器(Radius服务器)上带有winform C#应用程序的命令,c#,winforms,C#,Winforms,各位!!我是一个新开发的c#应用程序。我想构建winform应用程序来控制Windows网络策略服务器(NPS),但我不知道如何使用winform c#执行“netsh NPS…”命令(例如:netsh NPS show client),尽管当我直接使用Windows的powershell或cmd时,它可以正常工作。 这是我的形象: 这是我的源代码: //Execute command ***public string RunCommand(string PsCmd)

各位!!我是一个新开发的c#应用程序。我想构建winform应用程序来控制Windows网络策略服务器(NPS),但我不知道如何使用winform c#执行“netsh NPS…”命令(例如:netsh NPS show client),尽管当我直接使用Windows的powershell或cmd时,它可以正常工作。 这是我的形象:

这是我的源代码:

//Execute command
        ***public string RunCommand(string PsCmd)
        {
            PowerShell shell = PowerShell.Create();
            Runspace runspace = RunspaceFactory.CreateRunspace();
            runspace.Open();
            shell.Runspace = runspace;
            shell.AddCommand("Invoke-Expression");
            shell.AddArgument(PsCmd);
            Collection<PSObject> results = shell.Invoke();
            runspace.Close();
            string str = "Not Execute!";
            if (results.Count > 0)
            {
                var builder = new StringBuilder();
                foreach (var psObject in results)
                {
                    builder.Append(psObject.BaseObject.ToString());
                    builder.Append(Environment.NewLine);
                }
                str = builder.ToString();
            }
            return str;
        }
        private void btnRCCancel_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.Cancel;
        }
        private void btnRCOK_Click(object sender, EventArgs e)
        {
            txtOutput.Clear();
            txtOutput.Text = RunCommand(txtName.Text);
            //this.DialogResult = DialogResult.OK;
        }***
//执行命令
***公共字符串RunCommand(字符串PsCmd)
{
PowerShell shell=PowerShell.Create();
Runspace Runspace=RunspaceFactory.CreateRunspace();
Open();
shell.Runspace=运行空间;
AddCommand(“调用表达式”);
shell.AddArgument(PsCmd);
收集结果=shell.Invoke();
runspace.Close();
string str=“不执行!”;
如果(results.Count>0)
{
var builder=新的StringBuilder();
foreach(结果中的var psObject)
{
Append(psObject.BaseObject.ToString());
builder.Append(Environment.NewLine);
}
str=builder.ToString();
}
返回str;
}
私有无效btnRCCancel\u单击(对象发送者,事件参数e)
{
this.DialogResult=DialogResult.Cancel;
}
私有无效btnRCOK_单击(对象发送者,事件参数e)
{
txtOutput.Clear();
Text=RunCommand(txtName.Text);
//this.DialogResult=DialogResult.OK;
}***