首先,我已经掌握了一些开发技巧,但是自从我使用它们以来它已经很久了。 现在我正在尝试自动安装服务器应用程序。 所以我想在这里做什么,而且我现在已经谷歌搜索了一段时间, 是打开一个Powershell脚本(我已经创建并添加到项目中)。 我已经添加了所有代码,因此您可以看到我出错的地方。 一旦脚本完成,我需要if()来告诉我它是否已经完成正确。
这是代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.ObjectModel;
using System.Windows.Forms;
namespace WindowsFormsApplication1 {
public partial class Form3 : Form
{
public Form3()
{
InitializeComponent();
}
//here i want to launch the powershell script
private void progressBar1_Click(object sender, EventArgs e)
{
if ( )
{
}
else {
MessageBox.Show("There is an error in the application or data", "Prerequisite",
MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);
Application.Exit();
}
}
} }
答案 0 :(得分:2)
我认为您需要使用“PowerShellInstance.Invoke();”
微软在这里有一个很棒的教程。 https://blogs.msdn.microsoft.com/kebab/2014/04/28/executing-powershell-scripts-from-c/
答案 1 :(得分:0)
添加参考: System.Management.Automation
使用 System.Collections.Objectmodel 和 使用 System.Management.Automation
using (PowerShell PowerShellInstance = PowerShell.Create())
{
// use "AddScript" to add the contents of a script file to the end of the execution pipeline.
// use "AddCommand" to add individual commands/cmdlets to the end of the execution pipeline.
PowerShellInstance.AddScript("param($urlPath) New-Item -ItemType directory -Path \"$urlPath$d\";");
// use "AddParameter" to add a single parameter to the last command/script on the pipeline.
PowerShellInstance.AddParameter("urlPath", @"D:\New PS Folder\");
Collection<PSObject> PSOutput = PowerShellInstance.Invoke();
// loop through each output object item
foreach (PSObject outputItem in PSOutput)
{
// if null object was dumped to the pipeline during the script then a null
// object may be present here. check for null to prevent potential NRE.
if (outputItem != null)
{
//TODO: do something with the output item
// outputItem.BaseOBject
MessageBox.Show(outputItem.Properties.ToString());
}
}
}