我的问题类似于Running a CMD or BAT in silent mode,但有一个额外的限制。
如果您在 vbscript 中使用WshScript.Run,您将无法访问该过程的标准输入/错误/输出流。 WshScript.Exec允许您访问标准流,但您不能隐藏您的窗口。你怎么能得到你的蛋糕(隐藏窗户)并吃掉它(直接访问控制台流)?
我目前正在考虑一个 C++ 可执行文件,它创建一个新的 Windows Station 和 Desktop,(请参阅MSDN)并在该新桌面中运行指定的脚本(我还不是 Window Stations 和 Desktops 方面的专家,所以这个想法可能是迟钝)。
这个想法松散地基于Condor的 USE_VISIBLE_DESKTOP
功能,如果禁用,它会在不可见的桌面上运行 Condor 作业。我还没有完全弄清楚这是否需要提升特权。
这种方法的权衡是,如果它阻止用户输入,您的脚本可能会消失。
有没有人有任何额外的想法?或对上述方法的反馈?
编辑:
此外,我们脚本的目的是设置用户环境,因此作为另一个用户运行或作为系统计划任务运行并不是一个真正的选择(除非有我不知道的聪明技巧)。