如何使用powershell日常关机?
How to using powershell to shutdown computer everyday?
我想每天在 23:00 关闭 PC,我使用 at
命令但已弃用。
at 23:00 /every:M,T,W,Th,F,S,Su shutdown -s -f -t 300
由于不再支持 at
,Powershell 告诉我改用 schtasks.exe
。
谁能告诉我该怎么做?
跟进@Lee_Dailey 和@Jeroen Mostert 的评论。如果需要,您可以在特定时间将每日计划任务设置为 运行。幸运的是,powershell 具有 New-SchduledTask
cmdlet,您可以使用它轻松地执行此操作。
创建新的计划任务
计划任务至少需要两个组件才能工作;动作和触发器。
- Action – 计划任务执行的动作。一个动作通常是 运行 一个程序或脚本。一项计划任务可以有多个操作。
- 触发器 – 控制计划任务何时 运行s。触发器可以是基于时间的,例如设置每天或每小时重复的时间表。触发器也可以是基于 activity 的,运行 是一项基于检测到的活动(例如计算机启动、用户登录或记录的事件)的任务。
查看 return 在 运行ning Lee 的建议之后编辑的各种 cmdlet:Get-Command *scheduled*
,将 return 3 个我们需要使用的特定 cmdlet 你的情况.
New-ScheduledTaskAction
New-ScheduledTaskTrigger
Register-ScheduledTask
新建计划任务操作
使用New-ScheduledTaskAction
,我们将创建一个计划任务操作对象并将其存储在一个变量中; $任务动作。该操作将调用 Powershell.exe 并将参数传递给 运行 Stop-Computer cmdlet 以关闭您的计算机。
# Create a new task action
$taskAction = New-ScheduledTaskAction `
-Execute 'powershell.exe' `
-Argument 'Stop-Computer -Force'
$taskAction
新计划任务触发器
接下来是 New-ScheduledTaskTrigger
cmdlet,我们将使用它来创建 触发器 以每天 23:00 执行计划任务。
#Create task trigger
$taskTrigger = New-ScheduledTaskTrigger -Daily -At 9PM
$tasktrigger
注册-ScheduledTask
最后,我们可以使用 Register-ScheduledTask
来安排任务,让一切都平静下来。
# Register the new PowerShell scheduled task
# The name of your scheduled task.
$taskName = "Shutdown Computer"
# Describe the scheduled task.
$description = "Shuts computer down daily at 2300"
# Register the scheduled task
Register-ScheduledTask `
-TaskName $taskName `
-Action $taskAction `
-Trigger $taskTrigger `
-Description $description
大家聚在一起是这样的:
# The name of your scheduled task.
$taskName = "Shutdown Computer"
# Describe the scheduled task.
$description = "Shuts computer down daily at 2300 MTN"
# Create a new task action
$taskAction = New-ScheduledTaskAction `
-Execute 'powershell.exe' `
-Argument 'Stop-Computer -Force'
#Create task trigger
$taskTrigger = New-ScheduledTaskTrigger -Daily -At 9PM
# Register the new PowerShell scheduled task
# Register the scheduled task
Register-ScheduledTask `
-TaskName $taskName `
-Action $taskAction `
-Trigger $taskTrigger `
-Description $description
这是为未来的读者准备的,他们可能会就如何做到这一点提出同样的问题。所有致谢作者June Castillote 谁写了文章 Powershell Scheduled Task,其中我从一个 long 中提取了代码并对此 post 进行了解释(只是总结)。
对于这些 cmdlet 中的任何一个的帮助,Get-Help cmdlet-name -Online
可以 运行 获得此处提到的任何一个的最新帮助,以及完整的语法和其他可选参数可能被使用;比如在使用 -Principal
.
时添加应该是 运行 的上下文
我想每天在 23:00 关闭 PC,我使用 at
命令但已弃用。
at 23:00 /every:M,T,W,Th,F,S,Su shutdown -s -f -t 300
由于不再支持 at
,Powershell 告诉我改用 schtasks.exe
。
谁能告诉我该怎么做?
跟进@Lee_Dailey 和@Jeroen Mostert 的评论。如果需要,您可以在特定时间将每日计划任务设置为 运行。幸运的是,powershell 具有 New-SchduledTask
cmdlet,您可以使用它轻松地执行此操作。
创建新的计划任务
计划任务至少需要两个组件才能工作;动作和触发器。
- Action – 计划任务执行的动作。一个动作通常是 运行 一个程序或脚本。一项计划任务可以有多个操作。
- 触发器 – 控制计划任务何时 运行s。触发器可以是基于时间的,例如设置每天或每小时重复的时间表。触发器也可以是基于 activity 的,运行 是一项基于检测到的活动(例如计算机启动、用户登录或记录的事件)的任务。
查看 return 在 运行ning Lee 的建议之后编辑的各种 cmdlet:Get-Command *scheduled*
,将 return 3 个我们需要使用的特定 cmdlet 你的情况.
New-ScheduledTaskAction
New-ScheduledTaskTrigger
Register-ScheduledTask
新建计划任务操作
使用New-ScheduledTaskAction
,我们将创建一个计划任务操作对象并将其存储在一个变量中; $任务动作。该操作将调用 Powershell.exe 并将参数传递给 运行 Stop-Computer cmdlet 以关闭您的计算机。
# Create a new task action
$taskAction = New-ScheduledTaskAction `
-Execute 'powershell.exe' `
-Argument 'Stop-Computer -Force'
$taskAction
新计划任务触发器
接下来是 New-ScheduledTaskTrigger
cmdlet,我们将使用它来创建 触发器 以每天 23:00 执行计划任务。
#Create task trigger
$taskTrigger = New-ScheduledTaskTrigger -Daily -At 9PM
$tasktrigger
注册-ScheduledTask
最后,我们可以使用 Register-ScheduledTask
来安排任务,让一切都平静下来。
# Register the new PowerShell scheduled task
# The name of your scheduled task.
$taskName = "Shutdown Computer"
# Describe the scheduled task.
$description = "Shuts computer down daily at 2300"
# Register the scheduled task
Register-ScheduledTask `
-TaskName $taskName `
-Action $taskAction `
-Trigger $taskTrigger `
-Description $description
大家聚在一起是这样的:
# The name of your scheduled task.
$taskName = "Shutdown Computer"
# Describe the scheduled task.
$description = "Shuts computer down daily at 2300 MTN"
# Create a new task action
$taskAction = New-ScheduledTaskAction `
-Execute 'powershell.exe' `
-Argument 'Stop-Computer -Force'
#Create task trigger
$taskTrigger = New-ScheduledTaskTrigger -Daily -At 9PM
# Register the new PowerShell scheduled task
# Register the scheduled task
Register-ScheduledTask `
-TaskName $taskName `
-Action $taskAction `
-Trigger $taskTrigger `
-Description $description
这是为未来的读者准备的,他们可能会就如何做到这一点提出同样的问题。所有致谢作者June Castillote 谁写了文章 Powershell Scheduled Task,其中我从一个 long 中提取了代码并对此 post 进行了解释(只是总结)。
对于这些 cmdlet 中的任何一个的帮助,Get-Help cmdlet-name -Online
可以 运行 获得此处提到的任何一个的最新帮助,以及完整的语法和其他可选参数可能被使用;比如在使用 -Principal
.