簡體   English   中英

使用命令行創建在特定用戶登錄名上運行的計划任務

[英]Create a scheduled task that runs on particular user login using commandline

我需要創建一個計划任務,該任務在特定用戶登錄時運行一次。 目的是僅針對特定用戶啟動任務。

我知道可以使用任務計划程序創建帶有觸發器的任務。 在登錄時 ,在“設置”下,可以指定特定用戶。

但是,由於我需要在安裝例程中創建此文件,因此必須使用命令行(例如使用schtasks命令)自動創建它。 可以使用以下示例創建登錄時執行的任務:

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

但是我沒有找到任何修飾符來指定ONLOGON觸發器的特定用戶。

資源:

您知道是否有任何未記錄的開關? 還是任何其他提供必要功能的命令行工具?

謝謝。

我不知道有任何這樣的選擇。 不幸的是, schtasks命令沒有涵蓋Task Scheduler 2.0提供的所有功能。 您可以使用Task Scheduler腳本對象使用VBScript完成此操作,但是,我認為(ab)使用Task Scheduler的工作相當麻煩,因為使用Startup快捷方式,用戶Run鍵中的注冊表項可以輕松實現某些任務,或登錄腳本。

最好的方法是簡單地通過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>

將選項“ / 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參數指示僅當(特定用戶)登錄時任務才運行”

您應該忽略提到了“在任何用戶登錄時”的Task Scheduler GUI,並實際上嘗試重新啟動設備。 您會發現僅當使用(特定用戶)的帳戶登錄時,才運行特定命令。

這可行。

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

創建一個新用戶(這里是從本地Windows系統創建的testuser )。 在您的本地計算機上,它不起作用。 嘗試從另一個Windows系統使用用戶名testuser和密碼運行命令。 它遠程創建計划的任務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM