Search code examples
powershellwmicim

How to Export Clustered Scheduled Task


I try to export the XML of a Clustered Scheduled Task.

I search for the function as Export-ScheduledTask has for non Clustered Tasks.

Maybe there is a way via CIM when i execute a Get-ClusteredScheduledTask I get this.

But I have no idea how to query this

CimClass              : Root/Microsoft/Windows/TaskScheduler:MSFT_ClusteredScheduledTask
CimInstanceProperties : {ClusterName, CurrentOwner, Resource, TaskDefinition...}
CimSystemProperties   : Microsoft.Management.Infrastructure.CimSystemProperties

Edit1:

Get-Member

$task | Get-Member


   TypeName: Microsoft.Management.Infrastructure.CimInstance#Root/Microsoft/Windows/TaskScheduler/MSFT_ClusteredScheduledTask

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, System.Runtime.Serialization.StreamingContext context...
GetType                   Method         type GetType()                                                                                                                  
ToString                  Method         string ToString()                                                                                                               
ClusterName               Property       string ClusterName {get;}                                                                                                       
CurrentOwner              Property       string CurrentOwner {get;}                                                                                                      
PSComputerName            Property       string PSComputerName {get;}                                                                                                    
Resource                  Property       string Resource {get;}                                                                                                          
TaskDefinition            Property       CimInstance#Instance TaskDefinition {get;set;}                                                                                  
TaskName                  Property       string TaskName {get;}                                                                                                          
TaskType                  ScriptProperty System.Object TaskType {get=[Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.ClusterTaskTypeEnum]($this.PSBas...


Solution

  • Try This

    $TaskName = "Change_NTFS_permissions"
    
    Get-ChildItem -Path ($env:SystemRoot + 
                       '\System32\Tasks\Microsoft\Windows\Failover Clustering') 
                       -File -Recurse | ? {$_.Name -like $TaskName} | Get-Content | 
                       Out-File -FilePath ('C:\scripts\XML_Shedules' + '\' + $TaskName + '.xml')