You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PowerShell批量修改计划任务的运行安全设置?

用PowerShell批量修改计划任务的登录运行设置

核心方案:借助ScheduledTasks模块(Windows 8/Server 2012+)

Windows 8及以上系统自带的ScheduledTasks模块,可直接通过PowerShell修改计划任务的登录触发逻辑,是最稳定的自动化方式。

单台机器修改步骤

  1. 确保模块加载(通常自动加载,手动执行可避免异常):
Import-Module ScheduledTasks
  1. 获取目标计划任务对象:
$task = Get-ScheduledTask -TaskName "你的任务名称" -TaskPath "\目标任务路径\"
  1. 调整登录设置并保存:
# 将登录类型改为「仅用户登录时运行」(对应Interactive枚举值)
$task.Principal.LogonType = [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.LogonType]::Interactive
# 生效修改
Set-ScheduledTask -InputObject $task

跨机器批量修改脚本

需确保目标机器开启WinRM,且执行账号拥有管理员权限:

# 定义要操作的机器列表
$targetComputers = @("PC-001", "PC-002", "Server-01")
# 定义目标任务的名称和路径
$taskName = "待修改任务名"
$taskPath = "\任务所属路径\"

# 远程执行修改逻辑
Invoke-Command -ComputerName $targetComputers -ScriptBlock {
    param($taskName, $taskPath)
    Import-Module ScheduledTasks
    $task = Get-ScheduledTask -TaskName $taskName -TaskPath $taskPath -ErrorAction SilentlyContinue
    if ($task) {
        $task.Principal.LogonType = [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.LogonType]::Interactive
        Set-ScheduledTask -InputObject $task
        Write-Host "$env:COMPUTERNAME 上的任务修改完成"
    } else {
        Write-Warning "$env:COMPUTERNAME 未找到目标任务"
    }
} -ArgumentList $taskName, $taskPath

兼容Windows 7/Server 2008 R2的方案

若目标系统不支持ScheduledTasks模块,可改用schtasks命令:

# 单台修改示例
schtasks /change /tn "\任务路径\任务名称" /RU "原任务运行用户" /IT
# /IT 参数指定「仅用户登录时运行」,/RU需与原任务的运行用户保持一致

批量修改时,同样可通过Invoke-Command远程执行上述命令。

内容的提问来源于stack exchange,提问作者Shrikethorn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 14:30:00