Les journaux Planificateur de tâches sur le canal d'événement suivant :
Microsoft-Windows-TaskScheduler/Operational
Vous pouvez utiliser Get-WinEvent
pour collecter le même ts. Commencez par définir une table de hachage de filtre pour les id 100
événements de départ
# Event filter for the initial query for all "Start" events in the last 24 hours
$EventFilter = @{
LogName = 'Microsoft-Windows-TaskScheduler/Operational'
Id = 100
StartTime = [datetime]::Now.AddDays(-1)
}
Nous sommes besoin va extraire des valeurs de propriété de l'événement de départ, afin de trouver l'événement d'achèvement en corrélation, donc nous allons créer une propriété sélecteur
# PropertySelector for the Correlation id (the InstanceId) and task name
[string[]]$PropertyQueries = @(
'Event/EventData/Data[@Name="InstanceId"]'
'Event/EventData/Data[@Name="TaskName"]'
)
$PropertySelector = New-Object System.Diagnostics.Eventing.Reader.EventLogPropertySelector @(,$PropertyQueries)
maintenant récupérer les événements de début, trouver l'événement d'achèvement correspondant et sortie l'information comme un nouvel objet personnalisé:
# Loop through the start events
$TaskInvocations = foreach($StartEvent in Get-WinEvent -FilterHashtable $EventFilter){
# Grab the InstanceId and Task Name from the start event
$InstanceId,$TaskName = $StartEvent.GetPropertyValues($PropertySelector)
# Create custom object with the name and start event, query end event by InstanceId
[pscustomobject]@{
TaskName = $TaskName
StartTime = $StartEvent.TimeCreated
EndTime = $(Get-WinEvent -FilterXPath "*[System[(EventID=102)] and EventData[Data[@Name=""InstanceId""] and Data=""{$InstanceId}""]]" -LogName 'Microsoft-Windows-TaskScheduler/Operational' -ErrorAction SilentlyContinue).TimeCreated
}
}
Vous pouvez remplir un DataTable
avec les objets $TaskInvocations
, ou de générer une requête d'insertion sur la base des valeurs de propriété
Avez-vous cherché à utiliser: 'SCHTASKS/Query/V' – Squashman
Quelle version de PowerShell avez-vous? De quel système d'exploitation allez-vous le faire? Qu'avez-vous essayé depuis que cela se lit comme une demande de code qui n'est pas dans l'esprit de SO? – Matt
Je voudrais probablement utiliser 'schtasks/query/v/fo csv | ConvertFrom-Csv'. –