我正在构建一个 PoSh 启动脚本,用于初始化几个计划任务。一个任务在用户登录时触发,另一个任务在空闲时触发。两个任务都会再次运行脚本。启动时只需要脚本的第一部分,但其他时间应该运行整个脚本。
脚本如何确定是在启动时运行还是稍后运行?
答案1
我也推荐使用参数选项。创建两个计划任务,一个在启动时运行,调用开关-AtStartup
。然后,您可以创建第二个任务来调用不使用开关的脚本。参数的开关类型就是为此目的而构建的。
Function Start-Task {
[CmdletBinding()]
Param(
[Parameter(Mandatory=$True,Position=1)]
[string]$paramOne,
[Parameter(Mandatory=$True)]
[string]$paramTwo,
[switch]$AtStartup
)
if ($AtStartup) {
#Do startup activities....
Test-Connection -ComputerName Localhost
}
#Rest of script work
}
答案2
你可以使用
[System.Environment]::TickCount
获取系统启动以来经过的毫秒数。