$Alltasks = Get-ScheduledTask
$backupFolder = "c:\users\bob\desktop\tasks"
New-Item $backupFolder -ItemType Directory -Force
$Alltasks | Export-Clixml $backupFolder\backup-info.csv
foreach ($task in $Alltasks){
try{
$result = Export-ScheduledTask -TaskName $task.TaskName -TaskPath $task.TaskPath
if($result){
$result | Out-File ("$backupFolder\$($task.TaskName).xml")
}
$result = $null
}
catch{
$_
}
}
}
function restoreTasks(){
$backupFolder = "c:\users\bob\desktop\tasks"
$AllItems = Get-ChildItem $backupFolder -Filter *.xml
foreach ($item in $AllItems){
[string]$rawxml = Get-Content $item.FullName
[xml]$xml = $rawxml
$registration = $xml.Task.RegistrationInfo.URI -split('\\')
$C = $registration.Count - 1
$taskname = $registration[$C].Trim()
$taskpath = $xml.Task.RegistrationInfo.URI
try{
Register-ScheduledTask -Xml $rawxml -TaskName $taskname -TaskPath (Split-Path $taskpath)`
-ErrorAction SilentlyContinue -Force
}
catch{...}
}
}
function removeTasks {
Get-ScheduledTask | Unregister-ScheduledTask -Confirm:$false
}
reference:
No comments:
Post a Comment