Я пытаюсь распечатать информацию из Task Scheduler
с локального компьютера в PowerShell
скрипт, чтобы другие пользователи также могли распечатать эту информацию и не иметь доступа к Task Scheduler
. Мне нужно распечатать сценарий
Я могу распечатать информацию об имени, времени следующего и последнего выполнения, но остальное не распечатаю, когда я запускаю скрипт.
Я уже немного начал писать свой сценарий и разобрался с полями.
$schedule = new-object -com("Schedule.Service")
$schedule.connect()
$tasks = $schedule.getfolder("\").gettasks(0)
$tasks | select Name,Status,Triggers,NextRunTime,LastRunTime,LastRunResult,Author,Created | ft
foreach ($t in $tasks)
{
foreach ($a in $t.Actions)
{
$a.Path
}
}
Любая помощь или предложения будут оценены.
Ниже приведен снимок экрана с тем, что я ищу, и какие поля не печатают данные:
В Server 2012 R2 и Windows 8.1 есть командлеты планировщика заданий, и этот модуль можно скопировать и использовать на компьютере под управлением Windows 7, вероятно, ему, вероятно, также потребуется последняя версия .NET и Windows Management Framework. Я могу отключать и повторно включать запланированные задачи, а также отображать информацию о задачах. В настоящее время я не знаю встроенных командлетов, которые предоставляют мне эту информацию или разрешают этот элемент управления.
Чтобы вывести список всех запланированных задач на машине:
Get-ScheduledTask
Из объекта последовательности задач можно получить следующие члены:
PS C:\BigHomie> $A = Get-ScheduledTask | select -First 1
PS C:\BigHomie> $A
TypeName: Microsoft.Management.Infrastructure.CimInstance#Root/Microsoft/Windows/TaskScheduler/MSFT_ScheduledTask
Name MemberType Definition
---- ---------- ----------
Clone Method System.Object ICloneable.Clone()
Dispose Method void Dispose(), void IDisposable.Dispose()
Equals Method bool Equals(System.Object obj)
GetCimSessionComputerName Method string GetCimSessionComputerName()
GetCimSessionInstanceId Method guid GetCimSessionInstanceId()
GetHashCode Method int GetHashCode()
GetObjectData Method void GetObjectData(System.Runtime.Serialization.SerializationInfo info, Sys...
GetType Method type GetType()
ToString Method string ToString()
Actions Property CimInstance#InstanceArray Actions {get;set;}
Author Property string Author {get;set;}
Date Property string Date {get;set;}
Description Property string Description {get;set;}
Documentation Property string Documentation {get;set;}
Principal Property CimInstance#Instance Principal {get;set;}
PSComputerName Property string PSComputerName {get;}
SecurityDescriptor Property string SecurityDescriptor {get;set;}
Settings Property CimInstance#Instance Settings {get;set;}
Source Property string Source {get;set;}
TaskName Property string TaskName {get;}
TaskPath Property string TaskPath {get;}
Triggers Property CimInstance#InstanceArray Triggers {get;set;}
URI Property string URI {get;}
Version Property string Version {get;set;}
State ScriptProperty System.Object State {get=[Microsoft.PowerShell.Cmdletization.GeneratedTypes...
PS C:\BigHomie> $A.Triggers
Enabled : True
EndBoundary :
ExecutionTimeLimit :
Id :
Repetition : MSFT_TaskRepetitionPattern
StartBoundary :
PSComputerName :
Это можно немного поправить (например, сопоставить коды LastRunResult). Дай мне знать, если тебе понадобится помощь. Триггеры немного сложнее, поскольку я не думаю, что простое английское представление, которое вы видите при просмотре задачи в графическом интерфейсе, существует в COM-объекте. Я считаю, что его нужно было построить из TriggerCollection
Хранится в RegisteredTask.Definition.Triggers
$sched = New-Object -Com "Schedule.Service"
$sched.Connect()
$out = @()
$sched.GetFolder("\").GetTasks(0) | % {
$xml = [xml]$_.xml
$out += New-Object psobject -Property @{
"Name" = $_.Name
"Status" = switch($_.State) {0 {"Unknown"} 1 {"Disabled"} 2 {"Queued"} 3 {"Ready"} 4 {"Running"}}
"NextRunTime" = $_.NextRunTime
"LastRunTime" = $_.LastRunTime
"LastRunResult" = $_.LastTaskResult
"Author" = $xml.Task.Principals.Principal.UserId
"Created" = $xml.Task.RegistrationInfo.Date
}
}
$out | fl Name,Status,NextRuNTime,LastRunTime,LastRunResult,Author,Created