1

我需要创建一个在特定用户登录时运行一次的计划任务。目的是仅为特定用户启动任务。

我知道我可以使用任务计划程序来创建带有触发器的任务在登录时和设置下,我指定了特定的用户。

但是,因为我需要在安装例程期间创建它,所以必须使用命令行自动创建它,例如使用schtasks命令。可以使用以下示例创建在登录时执行的任务:

schtasks /Create /TR executable.exe /RU user /TN name /SC ONLOGON

但是我没有找到任何修饰符来为ONLOGON触发器指定特定用户。

资源:

你知道是否有任何未记录的开关吗?或者任何其他提供必要功能的命令行工具?

谢谢。

4

4 回答 4

4

将选项“/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,并实际尝试重新启动您的设备。您会发现特定命令仅在您使用(特定用户)的帐户登录时运行。

于 2016-12-19T01:43:13.950 回答
3

最好的方法是通过 schtasks 命令行简单地导入 XML。这是一个在 bob 登录时以 bob 身份运行“calc.exe”的示例:

  <?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>
于 2014-10-22T05:53:11.763 回答
2

我不知道有任何这样的选择。不幸的是,该schtasks命令并未涵盖 Task Scheduler 2.0 提供的所有功能。您可以使用 VBScript 使用Task Scheduler Scripting Objects来完成此操作,但是,我认为(ab)使用 Task Scheduler 来完成一些可以通过启动快捷方式更容易实现的事情,用户的Run键中的注册表项,或登录脚本。

于 2013-03-06T19:28:36.803 回答
-1

这行得通。

SchTasks /Create /SC DAILY /TN “abcMyTask” /TR “C:RunMe.bat” /ST 09:00 /IT /S /U testuser /P password@123

创建一个新用户(这里我是testuser从本地 Windows 系统创建的)。在您的本地机器上它不起作用。尝试使用用户名testuser和密码从另一个 Windows 系统运行命令。它远程创建计划任务。

于 2017-04-19T10:56:29.620 回答