我需要创建一个在特定用户登录时运行一次的计划任务。目的是仅为特定用户启动任务。
我知道我可以使用任务计划程序创建一个带有触发器登录时的任务,在“设置”下,我指定了特定的用户。
但是,因为我需要在安装例程期间创建它,所以必须使用命令行自动创建它,例如使用 schtasks 命令。可以使用以下示例创建在登录时执行的任务:
schtasks /Create /TR executable.exe /RU user /TN name /SC ONLOGON
但我没有找到任何修饰符来为 ONLOGON 触发器指定特定用户。
资源:
您知道是否有任何未记录的开关?或者提供必要功能的任何其他命令行工具?
感谢。
答案 0 :(得分:2)
我不知道有任何这样的选择。遗憾的是,schtasks
命令未涵盖Task Scheduler 2.0提供的所有功能。您可以使用Task Scheduler Scripting Objects使用VBScript完成此操作,但是,它认为(ab)使用任务计划程序可以通过启动快捷方式(用户的{{{中的注册表项)更轻松地实现这一点非常麻烦3}}密钥或登录脚本。
答案 1 :(得分:2)
最好的方法是通过schtasks命令行简单地导入XML。这是一个运行“calc.exe”作为bob的示例,只要bob登录:
<?xml version="1.0" encoding="UTF-16" ?>
- <Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
- <RegistrationInfo>
<Date>2014-10-22T01:50:13</Date>
<Author>user</Author>
</RegistrationInfo>
- <Triggers>
- <LogonTrigger>
<StartBoundary>2014-10-22T01:50:00</StartBoundary>
<Enabled>true</Enabled>
<UserId>WIN7BOX\bob</UserId>
</LogonTrigger>
</Triggers>
- <Principals>
- <Principal id="Author">
<UserId>bob</UserId>
<LogonType>InteractiveToken</LogonType>
<RunLevel>LeastPrivilege</RunLevel>
</Principal>
</Principals>
- <Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
- <IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>P3D</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
- <Actions Context="Author">
- <Exec>
<Command>calc.exe</Command>
</Exec>
</Actions>
</Task>
答案 2 :(得分:1)
将选项“/ IT”添加到schtasks / create命令,例如:
schtasks /Create /TR executable.exe /RU user /TN name /SC ONLOGON /IT
正如在https://technet.microsoft.com/en-us/library/cc725744(v=ws.11).aspx中提到的那样/ it参数,表示任务仅在(特定用户)登录时运行“
您应该忽略任务计划程序GUI,其中提到了“在任何用户登录时”,并且实际上尝试重新启动您的设备。您会发现只有在使用(特定用户)的帐户登录时才会运行特定命令。
答案 3 :(得分:0)
这很有效。
SchTasks /Create /SC DAILY /TN “abcMyTask” /TR “C:RunMe.bat” /ST 09:00 /IT /S /U testuser /P password@123
创建一个新用户(这里我从本地Windows系统创建了testuser
)。
在您的本地计算机上它不起作用。尝试使用用户名testuser
和密码从另一个Windows系统运行该命令。它远程创建一个计划任务。