![](/img/trans.png)
[英]Create a scheduled task which runs every minute without the user being logged in using PowerShell
[英]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.