1

特定のユーザーがログオンしたときに 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 がログインするたびに "calc.exe" を 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>
于 2014-10-22T05:53:11.763 に答える
2

私はそのようなオプションを知りません。残念ながら、このschtasksコマンドは、タスク スケジューラ 2.0 が提供するすべての機能をカバーしているわけではありません。Task Scheduler Scripting Objectsを使用して VBScript でこれを実現できますが、Startup ショートカット (ユーザーのRunキーのレジストリ エントリ) ではるかに簡単に実現できるものに Task Scheduler を (悪用) 使用するのは非常に面倒だと思います。またはログオン スクリプト。

于 2013-03-06T19:28:36.803 に答える