c# - 使用 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 文件。
任何帮助表示赞赏,我不确定我在哪里犯了错误。我可以发誓这个确切的代码在几周前运行良好。谢谢。
解决方案
使用内置的 PowerShell 对象:
PowerShell ps = PowerShell.Create();
ps.AddScript(File.ReadAllText(@"C:\Thunder\Scripts\3-BitLockerEnable.ps1")).Invoke();
推荐阅读
- python - 在 Python 中使用 PyYAML 创建 yaml 流集合
- java - How can I use an icon for a conditional in Java?
- amazon-web-services - AWS 负载均衡器将 :80 附加到 http 上的 url 到 https 301 重定向
- active-directory - 为什么客户总是希望通过 AD 和使用 AD 安全组的安全创建用户帐户?
- visual-studio - 我无法调试 Xamarin.Android 应用程序
- javascript - 在 redux 中调度存储变量时,React 组件不会重新渲染
- html - 手风琴内的超链接是半透明的(仅限 HTML CSS)
- python - 如何执行依赖于在另一个 python gui 脚本中提取文件名的 python 脚本?
- javascript - 在 Django 模板中使用 ViewerJS 显示 office 文件或 pdf 文件
- javascript - 使用 HTML 表将用户输入或响应保存到本地存储