Ale*_*exC 10 windows scheduled-tasks windows-server-2008
我正在运行由第三方创建的小型可执行文件,需要在Windows 2008服务器上定期运行.这个可执行文件有效地将信息从一个系统ETL到另一个系统,并且需要每小时左右运行一次.作为其处理的一部分,可执行文件启动一个小的Windows窗体类型UI.
我已经设置了一个调度文件的计划任务,只有在配置运行任务的用户登录到计算机(本地或通过远程桌面)时,这才能正常工作.如果我将任务设置为以另一个用户身份运行,或者将任务设置为在未记录用户时运行,则会在计划任务上执行并执行错误.我尝试过以不同的用户身份运行,包括管理员用户和系统用户.是否有任何可能的解决方法(不更改我无权访问的第三方代码),这将允许在没有特定用户登录的情况下运行此代码.
本文介绍了如何创建不需要任何登录的任务:https : //www.scriptjunkie.us/2013/01/running-code-from-a-non-elevated-account-at-any-time/
所描述的过程如下:
首先,创建一个计划任务以当前用户的默认选项运行您的命令(默认情况下,这将创建一个计划任务,该任务仅在您登录后运行):
schtasks /create /tn mytask /SC HOURLY /TR "calc"然后将任务导出为XML:
schtasks /query /XML /tn mytask > temp.xml并删除任务:
schtasks /delete /tn mytask /f然后打开XML文件,并替换行
<LogonType>InteractiveToken</LogonType>用<LogonType>S4U</LogonType>假设系统上安装了Powershell,可以使用以下命令完成此操作:
powershell -Command "Get-Content '.\temp.xml' | foreach {$_ -replace 'InteractiveToken', 'S4U' }" > new.xml move /y new.xml temp.xml现在,从修改后的XML文件重新创建任务:
schtasks /create /xml temp.xml /tn mytasks并删除您的临时文件:
del /f /q temp.xml
| 归档时间: |
|
| 查看次数: |
39010 次 |
| 最近记录: |