在控制台窗口打开的情况下运行计划任务作为SYSTEM

我在批处理窗口脚本中使用这行自动创build计划任务

schtasks /Create /RU SYSTEM /RP SYSTEM /TN startup-task-%%i /TR %SPEEDWAY_DIR%\%TARGET_DIR%%%i\%STARTUPFILE% /SC HOURLY /MO 1 /ST 17:%%i1:00 

我想避免使用特定的用户凭据,因此决定使用SYSTEM。

现在,当检查taskmanagers进程列表,甚至更好,直接与

 C:\> schtasks 

指挥本身,一切运转良好,任务按预期运行。

然而在这个特殊的情况下,我想有一个打开的控制台窗口,我可以看到飞行的日志。

我知道我可以使用

 C:\> tail -f thelogfile.log 

如果我安装例如cygwin(在所有机器上)或一些专有工具,如Windows上的Baretail。 但是由于我只是在遇到麻烦的时候才切换到这些机器,所以我更愿意以这样的方式启动计划的任务,即每个用户立即看到日志。

任何机会?

谢谢!

Powershell的get-content -wait会跟随一个像tail -f的文件

如果您正在寻找类似于尾巴的东西,可以使用more命令或type命令。

 C:\>more /? Displays output one screen at a time. MORE [/E [/C] [/P] [/S] [/Tn] [+n]] < [drive:][path]filename command-name | MORE [/E [/C] [/P] [/S] [/Tn] [+n]] MORE /E [/C] [/P] [/S] [/Tn] [+n] [files] [drive:][path]filename Specifies a file to display one screen at a time. command-name Specifies a command whose output will be displayed. /E Enable extended features /C Clear screen before displaying page /P Expand FormFeed characters /S Squeeze multiple blank lines into a single line /Tn Expand tabs to n spaces (default 8) Switches can be present in the MORE environment variable. +n Start displaying the first file at line n files List of files to be displayed. Files in the list are separated by blanks. If extended features are enabled, the following commands are accepted at the -- More -- prompt: P n Display next n lines S n Skip next n lines F Display next file Q Quit = Show line number ? Show help line <space> Display next page <ret> Display next line 

实现它的一种可能的方式是创build一个任务作为login用户在login时使用schtasks运行。 该任务将运行batch file,batch file的最后一位删除任务并创build另一个。

您可能还需要进行一些检查,以查看用户是否已注销(可能需要创造性),因为您不需要任务就可以在机器处于login屏幕或其他人login时继续运行。

如果他们没有权限运行原始进程,则可以使用原始schtasks作业运行,然后使用户的batch file读取输出。

希望这是明确的?

我有点困惑..你只是偶尔切换到这些机器,不想安装tail.exe,但你正在安装一个计划任务?

想到一些想法:

1)将tail.exe放在networking位置,直接使用。 鉴于UID是系统,networking共享只需$ COMPUTERNAME访问,我认为该组是用户,而不是授权用户,反之亦然

2)在用户桌面上运行作业本身:使用psexec。 它有一个-i(互动)选项。 所以, psexec -accepteula -s -i cmd /k echo hello 。 如果调度作业已经提供系统,则可以省略-s。 另外,/ k仅仅是为了certificate概念,你会想要使用/ c标准。

3)写一个程序:)