我知道 Windows 服务无法运行与 GUI 相关的任务,因为它不在操作系统 ui 会话上运行。
我有一个执行 PowerShell 脚本的批处理文件,该脚本打开 PowerShell 控制台等。
当我尝试使用 Windows 服务运行批处理文件时,什么也没有发生。当我尝试使用 exe 运行此批处理时,它可以工作。如何让服务运行此类任务?
我知道 Windows 服务无法运行与 GUI 相关的任务,因为它不在操作系统 ui 会话上运行。
我有一个执行 PowerShell 脚本的批处理文件,该脚本打开 PowerShell 控制台等。
当我尝试使用 Windows 服务运行批处理文件时,什么也没有发生。当我尝试使用 exe 运行此批处理时,它可以工作。如何让服务运行此类任务?
要详细说明@Henrik 的建议,您可以直接从 C# 执行批处理文件中的命令,这可能会起作用。
Process cmd = new Process();
ProcessStartInfo info = new ProcessStartInfo();
info.FileName = "cmd.exe";
info.RedirectStandardInput = true;
info.UseShellExecute = false;
cmd.StartInfo = info;
cmd.Start();
using (StreamWriter sw = cmd.StandardInput)
{
sw.WriteLine("echo command1");
sw.WriteLine("echo command2");
sw.WriteLine("echo command3");
}