如何强制进程在Windows 2003 server的控制台上运行?

如何强制进程在Windows 2003 server的控制台上运行?,windows,console,Windows,Console,我有一个奇怪的情况,某个批处理类型的应用程序在通过RDP在控制台上运行或物理登录到box时可以正常工作,但在非控制台会话上通过RDP运行或由Windows任务调度器执行时不能正常工作 我知道如何通过检查SESSIONNAME环境变量以编程方式确定进程是否在控制台上运行 我的问题是,如果我确定我没有在控制台上运行,我想要么切换到控制台,因为窗口站限制似乎不太可能,要么更可能,重新启动进程,但强制它在控制台会话上运行 对于通过Windows任务调度器启动的进程来说,这确实是一个问题,因为它们似乎不在

我有一个奇怪的情况,某个批处理类型的应用程序在通过RDP在控制台上运行或物理登录到box时可以正常工作,但在非控制台会话上通过RDP运行或由Windows任务调度器执行时不能正常工作

我知道如何通过检查SESSIONNAME环境变量以编程方式确定进程是否在控制台上运行

我的问题是,如果我确定我没有在控制台上运行,我想要么切换到控制台,因为窗口站限制似乎不太可能,要么更可能,重新启动进程,但强制它在控制台会话上运行


对于通过Windows任务调度器启动的进程来说,这确实是一个问题,因为它们似乎不在控制台上运行。

我认为您可以通过WTSGetActiveConsoleSessionId、WTSQueryUserToken和CreateProcessAsUser的组合在控制台会话中创建进程