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