我正在尝试使用 Powershell 在集群服务器上添加 ClusteredScheduledTask(Win 2012/R2)
Technet 示例代码出现错误:
#canned exampled from http://technet.microsoft.com/en-us/library/jj649815.aspx
$Action01 = New-ScheduledTaskAction -Execute Notepad
$Action02 = New-ScheduledTaskAction -Execute Calc
Set-ClusteredScheduledTask -TaskName "Task03" -Action $Action01,$Action02
错误:
Set-ClusteredScheduledTask : Incorrect function.
At I:\Scripts\TaskSchedulerSetupJobs\TestWebSampleCode.ps1:4 char:1
+ Set-ClusteredScheduledTask -TaskName "Task03" -Action $Action01,$Action02
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (PS_ClusteredScheduledTask:Root/Microsoft/...edScheduledTask) [Set-ClusteredScheduledTask], CimException
+ FullyQualifiedErrorId : HRESULT 0x80070001,Set-ClusteredScheduledTask
补充:正如 KrisFR 在下面指出的那样,我真正想要做的是进行注册,而不是设置,但我仍然收到相同的基本错误:
#canned exampled from http://technet.microsoft.com/en-us/library/jj649815.aspx
cls
$Trigger = New-ScheduledTaskTrigger -At 12:00 -Once
$Action01 = New-ScheduledTaskAction -Execute Notepad
Register-ClusteredScheduledTask -TaskName "Task03" -Trigger $Trigger -Action $Action01
错误:
Register-ClusteredScheduledTask : The parameter is incorrect.
At I:\Scripts\TaskSchedulerSetupJobs\TestWebSampleCode.ps1:5 char:1
+ Register-ClusteredScheduledTask -TaskName "Task03" -Trigger $Trigger -Action $Ac ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (PS_ClusteredScheduledTask:Root/Microsoft/...edScheduledTask) [Register-ClusteredScheduledTask], CimExce
ption
+ FullyQualifiedErrorId : HRESULT 0x80070057,Register-ClusteredScheduledTask
更新#2:根据以下答案和评论,我们已确定:
1) 在 PowerGUI 下运行时,添加 -TaskType anynode 将错误从“参数不正确”更改为“函数不正确”,并且
2) 当我使用“以管理员身份运行”打开 ISE 32 位或 64 位时,我收到“函数不正确”
3) 当我打开 ISE 32 位或 64 位而没有“以管理员身份运行”时 - 我得到
4) 今天早些时候的某个时候,我收到了“访问被拒绝”和/或“权限被拒绝”的提示,我想那是在我打开 PowerGUI 时没有使用“以管理员身份运行”的时候。
答案1
您是否尝试更新已注册的集群任务或注册新的集群任务?
从MSDN 博客:
设置 ClusteredScheduledTask:更新已经注册的集群任务。
注册ClusteredScheduledTask: 注册集群任务。
我猜你正在寻找注册-ClusteredScheduledTask。
答案2
需要添加-TaskType参数并以管理员身份运行:
$trigger = New-ScheduledTaskTrigger -at 12:00 -Once
$action = New-ScheduledTaskAction -Execute "notepad"
Register-ClusteredScheduledTask -Action $action -TaskName "clusteredtasktest" -Trigger $trigger -TaskType anynode
答案3
我们与 Microsoft 合作解决了这个问题。我们的问题是管理员将“任务计划程序”定义为“BizTalk2013”群集节点的一部分(get-ClusterResource cmdlet 上显示的 OwnerGroup)。我们删除了该 ClusterResource。在我们的例子中,“BizTalk2013”是我们的“OwnerGroup”,显然需要是“任务计划程序”。
事实证明,如果我们的管理员什么都没做,那么运行 Register-ClusteredScheduledTask cmdlet 就会起作用,并在名为“任务计划程序”的节点下添加“任务计划程序”。我试图找到他按照他的方式进行设置的博客。