首页 > 解决方案 > 如何使用 C# 执行 PowerShell 脚本

问题描述

我需要使用 c# 执行 PowerShell 脚本

ProcessStartInfo startInfo = new ProcessStartInfo();
            startInfo.FileName = @"cmd.exe";
            startInfo.Arguments = @"powershell -File ""C:\Users\user1\Desktop\power.ps1""";
            startInfo.Verb = "runas";
            startInfo.RedirectStandardOutput = true;
            startInfo.RedirectStandardError = true;
            startInfo.UseShellExecute = false;
            startInfo.CreateNoWindow = true;
            Process process = new Process();
            process.StartInfo = startInfo;
            process.Start();
            process.WaitForExit();

这不起作用。有人能帮我吗?我有一个 PowerShell 脚本文件,有时它会有要传递的参数

标签: c#asp.net.netwindowspowershell

解决方案


从 C# 运行 .ps1 是一件非常普遍的事情,网络上有许多示例,Youtube 上的视频展示了如何/使用示例。

从 C# 代码调用 Powershell 脚本

public static int RunPowershellScript(string ps)
{
int errorLevel;
ProcessStartInfo processInfo;
Process process;

processInfo = new ProcessStartInfo("powershell.exe", "-File " + ps);
processInfo.CreateNoWindow = true;
processInfo.UseShellExecute = false;

process = Process.Start(processInfo);
process.WaitForExit();

errorLevel = process.ExitCode;
process.Close();

return errorLevel;
}

以及查看这些 stackoverflowthreads。

从 C# 调用 PowerShell 脚本文件 (example.ps1)

我们什么时候需要将 UseShellExecute 设置为 True?


推荐阅读