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)
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