如何安排在Windows上启动后立即执行powershell脚本?

时间:2017-09-22 09:21:10

标签: java powershell taskscheduler windows-server-2016

我希望在启动/重新启动计算机时运行在Windows上启动某个应用程序的脚本。

我尝试了Register-ScheduledJob cmdlet:

Register-ScheduledJob -Name "MyJob" -ScriptBlock {.\C:\Users\Administrator\my_script.ps1 -input_value xyz} -Trigger (New-JobTrigger -AtStartup)

但是,在启动和

上的输出文件夹中没有执行任何操作
$home\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs directory

任务计划程序工具也没有显示任何内容。

my_script.ps1只是按如下方式启动Java jar:

param(
[parameter(Mandatory=$TRUE,Position=0)]
  [string] $input_value
)


write-output "Starting my Java app ... "

start powershell {java -jar slave.jar <<-some params ...>> ; Read-Host}
Exit 0

即使我尝试使用Start-Job -DefinitionName MyJob运行作业,但是没有任何反应,尽管它输出了它的运行...

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我知道的唯一方法是在任务scheduler中运行它。

schtasks /Create [/S <system> [/U <username> [/P [<password>]]]]
    [/RU <username> [/RP <password>]] /SC <schedule> [/MO <modifier>] [/D <day>]
    [/M <months>] [/I <idletime>] /TN <taskname> /TR <taskrun> [/ST <starttime>]
    [/RI <interval>] [ {/ET <endtime> | /DU <duration>} [/K] [/XML <xmlfile>] [/V1]]
    [/SD <startdate>] [/ED <enddate>] [/IT] [/Z] [/F]

答案 1 :(得分:0)

我会在Task中创建Task Scheduler并将Trigger设置为 &#34;当记录特定事件时#34;

然后,将Log:设置为 系统 ,将Source:设置为 Kernal-General Event ID: 12 (或任何您想要触发脚本的事件)。 12 似乎总是在启动后触发。

在“操作”下,选择 启动程序 ,然后将 程序/脚本 设置为PowerShell。在 添加参数(可选): 中输入-file "C:\YourDirectory\YourScript.ps1"