gpt4 book ai didi

c# - 在非交互模式下从 C# 执行 PowerShell

转载 作者:行者123 更新时间:2023-11-30 23:03:20 24 4
gpt4 key购买 nike

我正在使用 System.Management.Automation 命名空间在 C# 中运行一些 PowerShell 脚本。这非常有效,除了当我调用脚本时,我非常短暂地看到一个命令窗口在屏幕上闪烁然后消失。这种行为在我的应用程序中是 Not Acceptable 。

我可以通过启动新进程并设置 CreateNoWindow=true 来避免这种行为,但我真的更愿意使用托管的 PowerShell 库。我怎样才能以不在屏幕上闪烁的非交互式方式执行此操作?

导致窗口闪烁的某些 PowerShell 示例:

using (PowerShell ps = PowerShell.Create())
{
ps.AddCommand(@"Get-WindowsUpdateLog");
ps.AddParameter(@"-LogPath", @"C:\WindowsUpdate.Log");
var psOutput = ps.Invoke();
}

最佳答案

我相信您看到的闪光灯是因为 Get-WindowsUpdateLog 函数在内部调用了 tracerpt.exe,这是一个控制台应用程序。从 GUI 运行控制台应用程序会产生闪光。 (如果您从 ISE 运行 GetWindowsUpdateLog,您将看到相同的闪存。)不幸的是,您对此无能为力。您可以修改您的 Win32 应用程序以在启动时分配一个控制台句柄来控制何时您看到闪光灯但您仍然会看到它。

关于c# - 在非交互模式下从 C# 执行 PowerShell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50010741/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com