New-ScheduledTaskAction: "New-ScheduledTaskAction"一词不被识别为cmdlet名称

5

我的脚本类似于-

$action = New-ScheduledTaskAction -Execute "BolusDemoDataGenerator.BAT"
$TaskStartTime = [datetime]::Now.AddMinutes(2) 
$trigger = New-ScheduledTaskTrigger -At $TaskStartTime -Once

$setting = New-ScheduledTaskSettingSet
$inputTask = -action $action  -trigger $trigger -settings
Register-ScheduledTask BatchRunTask -InputObject $inputTask

但是我遇到了一个错误

New-ScheduledTaskAction : The term 'New-ScheduledTaskAction' is not 
recognized as the name of a cmdlet, function,
script file, or operable program. Check the spelling of the name, or if a 
path was included, verify that the path is
correct and try again.
At C:\Users\abc\Desktop\hi.ps1:1 char:11
+ $action = New-ScheduledTaskAction -Execute "BolusDemoDataGenerator.BAT"
+           ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : ObjectNotFound: (New-ScheduledTaskAction:String) 
[], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

我不确定出了什么问题,我尝试执行这个PowerShell脚本来创建一个任务计划程序,以便在桌面上执行一个批处理文件。


6
你使用的PowerShell版本是多少?因为该命令在PowerShell 4.0中才可用。你可以输入$PSVersionTable.PSVersion来确定版本号。 - Itchydon
Mazor 4 minor 0 Build -1 Revision-1 - Ashu
在这种情况下,请尝试导入模块 Import-Module ScheduledTasks - Itchydon
1
该链接指出此适用于Server 2012 R2和Windows 8.1。您的操作系统是否属于其中之一? - Sid
@RohinSidharth,“其他版本”将显示它也适用于Server 2012 / Windows 8和Windows 10 / Server 2016。 - G42
显示剩余2条评论
1个回答

5
使用PowerShell 4.0,您可以使用新的cmdlets New-ScheduledTaskActionNew-ScheduledTaskTriggerRegister-ScheduledTask轻松创建计划任务,但是很遗憾,在之前的版本中(查看$PSVersionTable中的PSVersion),这是不可能的。
对于之前的版本,您可以找到许多示例,其中人们调用schtasks.exe命令。
如果您想避免调用外部可执行文件并尽可能在PowerShell中完成所有操作,则可以使用任务计划程序的COM对象来创建计划任务
# Open the Task Scheduler com object
$service = new-object -ComObject("Schedule.Service")

1
我正在使用 Powershell 4.0。 - Ashu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接