Windows 7 任务计划程序隐藏设置不起作用

Jos*_*ank 48 windows-7 task-scheduler

我有一个每小时在我的机器上运行的守护进程,即使我选中了这个Hidden框,它也不起作用。任务属性

该任务每小时运行一次,但它显示黑色命令窗口,我的 .NET 控制台应用程序正在其中运行。这将保持可见,直到任务完成,然后消失。这很烦人,因为它会弹出并中断我正在做的任何事情:

在此处输入图片说明

我真的很想隐藏它,那么我该如何解决这个问题?

小智 58

选中“无论用户是否登录都运行”复选框,可执行文件将在后台运行。

  • 这需要在任务中保存密码,并且会在下次更改密码时隐藏地破坏(通常由企业环境中的域策略强制执行)。 (14认同)
  • 就如此容易。这个答案应该是公认的。 (4认同)

Kar*_*ran 24

为什么 Windows 7 计划任务运行隐藏?应该解释为什么会发生这种情况。

此外,此 TechNet 对常规任务属性的描述指出:

任务的常规属性显示在“任务属性”或“创建任务”对话框的“常规”选项卡上。任务的常规属性包括任务名称、作者、描述、安全选项、为任务配置的操作系统以及控制任务是否隐藏的属性

在任务文件夹中创建任务时,必须为任务命名。如果两个任务位于同一个任务文件夹中,则它们不能具有相同的名称。任务描述是可选的。

任务安全选项指定任务在其下运行的安全上下文。有关更多信息,请参阅任务安全上下文。

默认情况下,隐藏的任务不会显示在任务计划程序用户界面中。在“查看”菜单中选择“显示隐藏的任务”后,您可以查看隐藏的任务。单击“任务属性”或“创建任务”对话框的“常规”选项卡上的“隐藏”复选框时,将隐藏任务。

这是否意味着复选框仅从调度程序的 UI 中隐藏任务本身,而不是调度的实际程序?

  • 您是否在“查看”菜单中选中了*显示隐藏的任务*? (2认同)
  • 啊,我做到了,所以这就解释了。谢谢。当然,由于“隐藏”并没有按照我的想法去做,所以我不需要隐藏任务。由于这是仅限管理员使用的工具,并且管理员通常不喜欢向他们隐藏某些内容,那么隐藏任务的目的是什么? (2认同)
  • 谁知道,当然*我*从未使用过该选项。您的问题是我第一次查看它以了解它的作用。:) 顺便说一句,不是将用户更改为 SYSTEM,而是选择“无论用户是否登录都运行”可以解决问题吗? (2认同)

Jos*_*ank 21

好的,经过更多研究,我在 StackOverflow 上找到了这个答案

要将计划任务设置为在后台运行,请将运行该任务的用户更改为 SYSTEM,屏幕上将不会显示任何内容。

一条评论指出,这授予了任务的全部权限,这可能很烦人,但在这种情况下是可以接受的。

但是Hidden,如果它不这样做,它会做什么?为什么运行该程序的用户帐户与它是否可见有任何关系?

  • [这个 SU 答案](http://superuser.com/a/210070/23133) 涉及以不同用户身份运行它以避免也看到输出的想法。我认为没有任何特定理由将它作为“系统”运行,您可以创建一个仅用于运行该任务的用户,并具有您选择授予他们的权限。 (2认同)

Phi*_*nin 14

终极解决方案

  • 将运行任务的用户更改为 SYSTEM - 将不在您的用户下执行您的命令
  • 检查“无论用户是否登录都运行” - 需要在任务中保存密码,并且会在下次更改密码时隐藏地破坏(通常由企业环境中的域策略强制执行)

如果这些对你来说是破坏性的,最终的解决方案是创建如下所示的 JS 脚本文件,它将在隐藏窗口中运行你的命令,等待你的命令终止并返回其错误代码:

WScript.CreateObject("WScript.Shell")
.Run('powershell -File C:\\Path\\To\\MyScript.ps1', 0,true);
Run Code Online (Sandbox Code Playgroud)

将其另存为 js 文件 (myjob.js) 并将其添加到您的任务调度程序: 在此处输入图片说明 享受

  • 另外,您应该使用 Wscript.exe 来运行脚本,而不是 Cscript。否则,可能会暂时弹出黑色控制台窗口。 (2认同)