【发布时间】:2014-02-20 10:58:30
【问题描述】:
我的任务计划程序中有一个任务,它只是每晚运行一些 Powershell 脚本。有时我需要手动运行此任务,如果在我的脚本中可以确定这是手动运行还是基于触发器的运行,那就太好了。
有什么办法吗?
【问题讨论】:
标签: powershell scheduled-tasks
我的任务计划程序中有一个任务,它只是每晚运行一些 Powershell 脚本。有时我需要手动运行此任务,如果在我的脚本中可以确定这是手动运行还是基于触发器的运行,那就太好了。
有什么办法吗?
【问题讨论】:
标签: powershell scheduled-tasks
您可以查看 schduler 事件日志:
get-winevent Microsoft-Windows-TaskScheduler/Operational -MaxEvents 3
这 100 个 ID 事件将具有启动任务的用户名,以及该实例的实例 ID (guid)。如果您想将其与脚本中的 $PID 进行匹配以验证它是当前进程,那么接下来会出现一个 200 事件,该事件具有实例 ID 和进程 ID。
【讨论】:
$t = Get-ScheduledTask "YourTaskName"
if($t.State.ToString() -eq "Running"){
# scheduled task code
}
else{
# manual run code
}
【讨论】: