首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用powershell禁用群集计划任务

如何使用powershell禁用群集计划任务
EN

Stack Overflow用户
提问于 2015-05-16 08:02:38
回答 1查看 1K关注 0票数 0

需要使用以下命令禁用windows 2012中的群集计划任务,但它不会禁用群集计划任务。

get-ClusteredScheduledTask -disable

Disable-ScheduledTask -TaskName

EN

回答 1

Stack Overflow用户

发布于 2015-05-19 05:07:56

管道|导致从get-ClusteredScheduledTasks返回的整个对象集被传递给Disable-ScheduledTask。使用-TaskName会导致Disable-ScheduledTask命令出错,因为管道告诉它“将此命令应用于这些对象”,但随后您立即尝试将该命令应用于名为"schTest 123“的单个任务。This article提供了一些关于命令管道的更深层次的解释。

有几种不同的方法来解决这个问题,这取决于你想要做什么:

1)如果您的目标是禁用当前计划的所有任务:

代码语言:javascript
运行
复制
$tasks = get-ScheduledTasks | where { $_.State -eq "Ready" } # exclude any tasks that are already disabled so we don't accidentally re-enable them later
$tasks | Disable-ScheduledTask
# do your work
$tasks | Enable-ScheduledTask

代码语言:javascript
运行
复制
$tasks = get-ScheduledTasks | where { $_.State -eq "Ready" }
$tasks | foreach { Disable-ScheduledTask -TaskName $_.TaskName }
# do your work
$tasks | foreach { Enable-ScheduledTask -TaskName $_.TaskName }

它们在功能上是相同的,但第一个在语义上肯定更清晰。

2)如果您的目标是仅按名称禁用单个任务

代码语言:javascript
运行
复制
Disable-ScheduledTask -TaskName $myTaskName
# do your work
Enable-ScheduledTask -TaskName $myTaskName

3)如果您想在关闭/启用之前确认单个任务存在

代码语言:javascript
运行
复制
$task = get-ClusteredScheduledTasks | where { $_.TaskName -eq $myTaskName }
if ( $task -eq $Null ) { throw ( "Could not find scheduled task " + $myTaskName ) }
Disable-ScheduledTask -TaskName $task.TaskName
# do work
Enable-ScheduledTask -TaskName $task.TaskName
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30270416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档