计划任务未显示在 Get-ScheduledTask 结果中

meh*_*ran 5 powershell scheduled-tasks octopus-deploy windows2012

我在“\”[默认] 路径下使用 Windows 任务计划程序 GUI 定义了一些计划任务,但是当我Get-ScheduledTask在 powershell 中运行时,它不会返回它们。为什么?

我已经尝试使用Get-ScheduledTask -TaskName "MyTaskName"我的任务名称之一,但它出现了“未找到属性‘TaskName’等于‘MyTaskName’的 MSFT_ScheduledTask 对象”

实际上我已经尝试过https://library.octopusdeploy.com/step-template/actiontemplate-windows-scheduled-task-disable但它不起作用所以我尝试直接运行脚本。

更新 我找到了以下脚本来获取http://www.fixitscripts.com/problems/getting-a-list-of-scheduled-tasks上的任务列表:

# PowerShell script to get scheduled tasks from local computer
$schedule = new-object -com("Schedule.Service")
$schedule.connect() 
$tasks = $schedule.getfolder("\").gettasks(0)
$tasks  | Format-Table   Name , LastRunTime    # -AutoSize
IF($tasks.count -eq 0) {Write-Host “Schedule is Empty”}
Read-Host
Run Code Online (Sandbox Code Playgroud)

预先感谢您的帮助。

小智 5

通用汽车公司

结果很可能受到UAC 的影响。要查看所有内容,请尝试右键单击 PowerShell 图标,选择Run as Administrator然后Get-ScheduledTask再次运行您的命令,看看是否有任何改变。

进一步阅读: http : //david-homer.blogspot.co.uk/2017/10/not-all-scheduled-tasks-show-up-when.html


Tec*_*pud 4

您尝试过使用 com 对象吗?这段代码对我有用:

# FOR A REMOTE MACHINE
$s = 'SERVER_NAME' # update this with server name
($TaskScheduler = New-Object -ComObject Schedule.Service).Connect($s)


# FOR LOCAL MACHINE
($TaskScheduler = New-Object -ComObject Schedule.Service).Connect()

#now we can query the schedules...
cls;$TaskScheduler.GetFolder('\').GetTasks(0) | Select Name, State, Enabled, LastRunTime, LastTaskResult | Out-GridView
Run Code Online (Sandbox Code Playgroud)

此代码将检索特定任务并启用它:

$task = $TaskScheduler.GetFolder('\').GetTask("TASKNAME")
$task.Enabled = $true
Run Code Online (Sandbox Code Playgroud)