首页 > 解决方案 > 使用 Process.Start 启动 PowerShell 脚本会关闭 PowerShell 且没有错误

问题描述

我正在用 C# 编写一个小应用程序,它调用各种 PowerShell 脚本来配置计算机。

我现在遇到了一个问题,我认为我上次处理它时只是几周前。

当我从 C# 调用这些脚本时,PowerShell 窗口会非常短暂地打开然后关闭。我以为我的 PS 脚本中可能有错误,但是不,如果我在开始时执行 Start-Transcript,我仍然没有得到任何输出,所以它显然甚至没有开始运行我的脚本。

我的代码:

Process.Start(@"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe ", @"C:\Thunder\Scripts\3-BitLockerEnable.ps1");

我想也许执行策略是问题所在,但它设置为不受限制。我确保文件路径是正确的 - 只需删除 PowerShell 调用就可以让我检查,它会在没有该行的情况下在记事本中打开 ps1 文件。

任何帮助表示赞赏,我不确定我在哪里犯了错误。我可以发誓这个确切的代码在几周前运行良好。谢谢。

标签: c#powershellwindows-10execution

解决方案


使用内置的 PowerShell 对象:

PowerShell ps = PowerShell.Create();
ps.AddScript(File.ReadAllText(@"C:\Thunder\Scripts\3-BitLockerEnable.ps1")).Invoke();

推荐阅读