VBS e DOS Come Esportare Le Scheduled Task di Windows

Se avete la necessità di fare il backup delle Operazioni Pianificate di Windows e non avete voglia di farlo a mano perchè magari come me avere una trentina di Scheduled Task, vi corro in aiuto con un semplice ma efficace script.

Un file in .VBS accederà allo Scheduled Manager e recupererà il nome dell' operazione pianificata e la passerà ad un file .BAT che lancherà lo Scheduled Manager esportandoil Task in un file .XML

Questi script funzionano correttamente su Windows Vista, per le altre versioni di Windows non garantisco ^_^


Di Seguito il file . VBS:


' Creo l'oggetto TaskService.
Set service = CreateObject("Schedule.Service")
call service.Connect()

' richiamo la cartella che contiene i tasks.
Dim rootFolder
Set rootFolder = service.GetFolder("\")

Dim taskCollection
Set taskCollection = rootFolder.GetTasks(0)

Dim numberOfTasks
numberOfTasks = taskCollection.Count

If numberOfTasks = 0 Then
    Wscript.Echo "No tasks are registered."
Else
      
    Dim registeredTask
   
    ' Creo l'ggetto Shell.
    Dim objShell, WshShell
    set objShell = CreateObject("WScript.Shell")

    ' ciclo tutte tutti i task, recupero il nome e lo passo al file .bat
    For Each registeredTask In taskCollection
       
        objShell.Run("C:\UPGRADE\Export_Scheduled_Task.bat " & registeredTask.Name)
              
    Next
   
End If



Di seguito il file Export_Scheduled_Task.bat

rem recupero il nome del Task passato dal file .vbs
set Task_name=%1

rem imposto il file di esportazione dell'output generato dallo Scheduled Manager
set file_exported="C:\UPGRADE\export\%Task_name%.xml"

rem richiamo lo scheduled task ed esporto il Task nel file XML
schtasks /Query /XML /TN %Task_name% >> %file_exported%




NOTE:
E' importante controllare il path in cui lo script viene posizionato.
Il file .VBS potrebbe andare in errore se trova nel path degli spazi.

Esempio che da errore:
objShell.Run("C:\Backup Task\Export_Scheduled_Task.bat " & registeredTask.Name)

Esempio Corretto:
objShell.Run("C:\Backup_Task\Export_Scheduled_Task.bat " & registeredTask.Name)




Commenti