zenntleman
Goto Top

Backup Script für Acronis True Image 9.0

Hallo Ich benutze Acronis TI 9 um Workstations zu sichern
Ich möchte den Imagevorgang automatisieren.
Da es aber von der "Acronis Managment Console" aus nicht möglich ist Images monatlich beim Herunterfahren des PCs zu erstellen habe ich ein Script gemacht.
dieses Script wird dann jedesmal beim herunterfahren der PCs ausgeführt.
mein Problem ist das ich mich mit VBScript noch nicht so gut auskenne und es nicht so Funktioniert wie ich will

Ziel ist es also eine logdatei zu überprüfen (D:\Images\log.log) und wenn diese älter als 30 tage + Random(1-5) oder nicht vorhanden
das Programm "C:\Programme\Acronis\TrueImageWorkstation\TrueImageCmd.exe"
mit den parameter "/create /partition:C /filename:"I:\IMAGE_%COMPUTERNAME%_%DATE%.tib" /log:"D:\Images\log.log" gestartet wird
und auf unsere NAS Station schreibt

könnt ihr mir helfen?

Content-Key: 108496

Url: https://administrator.de/contentid/108496

Printed on: May 3, 2024 at 21:05 o'clock

Member: gijoe
gijoe Feb 10, 2009 at 18:28:30 (UTC)
Goto Top
Hi,
hatte ein ähnliches Problem, ich wollte Acornis in ein Batch-File integrieren. Habe an den Support geschrieben und die haben dann ein paar Beispiele geschickt. Alternativ kannst du auch hier schauen (am Ender der Site hat's ein paar Batch-files):
http://www.acronis.com/homecomputing/support/kb/articles/976
Member: zenntleman
zenntleman Feb 10, 2009 at 20:18:02 (UTC)
Goto Top
Ja Batch ist ja kein ding mir gehts um VBS
Member: zenntleman
zenntleman Feb 11, 2009 at 13:12:15 (UTC)
Goto Top
Mein Ansatz sieht so aus

    Dim fso
    Dim wn
    Dim ws
    Dim f1
    Set fso = CreateObject("Scripting.FileSystemObject")  
    Set wn = CreateObject("WScript.Network")  
    Set ws = CreateObject("WScript.Shell")  

    Sub Main()
        'Prüfung ob Logfile vorhanden'  
        If fso.fileExists("D:\Images\log.log") Then  
            'Logfile vorhanden'  
            f1 = fso.GetFile("D:\Images\log.log")  
            'erstellen einer Zufallszahl'  
            von = 1
            bis = 5
            Randomize()
            anzahl = bis - von + 1
            zufall = Fix(Rnd() * (anzahl)) + von
            'Prüfung ob Logfile älter als 30 + Random Tage ist'  
            If f1.DateLastModified < (date - 30 - zufall) then
                'Logfile älter'  
                TestNetwork() 
            Else
                'Logfile nicht älter'    
            End If
        Else
            'Logfile nicht vorhanden'  
            TestNetwork()
        End If
    End Sub
    
    Sub TestNetwork() 
        'Prüfung ob Netzwerk vorhanden'  
        If fso.fileExists(" *TESTDATEI auf DC* ") Then  
            'Netzwerk vorhanden'  
            wn.RemoveNetworkDrive "I:", True, True  
            wn.MapNetworkDrive ("I:", " *NAS* ", False, " *USER* ", " *PW* ")  
            'Prüfung ob lokales Image mit variablem Namen vorhanden'      
            If fso.fileExists("D:\Images\Image~.tib") Then  
                'lokales Image vorhanden'        
                quelle = "D:\Images\Image~.tib"  
                ziel = "I:\"  
                f1 = fso.GetFile(quelle)
                f1.Move(ziel)
                logbuch = fso.opentextfile("D:\Images\log.log", 8, True, 0)  
                logbuch.writeline(Now & "---Image verschoben")  
                logbuch.close()
            Else
                'lokales Image nicht vorhanden'        
                'PC name generieren Computername + Datum'          
                pc = wn.Computername + Date
                'Starten von Image auf NAS'          
                ws.Run("C:\Programme\Acronis\TrueImageWorkstation\TrueImageCmd.exe /create /partition:C /filename:I:\" & pc & ".tib /log:D:\Images\log.log")  
            End If
            wn.RemoveNetworkDrive "I:", True, True  
        Else
            'Netzwerk nicht vorhanden'      
            'PC name generieren Computername + Datum'          
            pc = wn.Computername + Date
            'Starten von Image auf Lokal'          
            ws.Run("C:\Programme\Acronis\TrueImageWorkstation\TrueImageCmd.exe /create /partition:C /filename:D:\Images\" & pc & ".tib /log:D:\Images\log.log")  
        End If
    End Sub
Member: zenntleman
zenntleman Feb 13, 2009 at 10:46:38 (UTC)
Goto Top
FUNKTIONIERT!!!!!!

 
'Script erstellt by Zenntleman 13.02.2009  
Option Explicit

ON ERROR RESUME NEXT

Const Lokal = "D:\Images\"   ' Dieser Ordner soll duchsucht werden  
Const Endung = ".TIB"       ' Nach dieser Endung soll gesuchtwerden  
Const Netz ="I:\"  
Const NetzB = "I:"  
Const NASPfad = "netzpfad der NAS station"  
Const NetzTestdatei = "Txt file auf der NAS station"  
Const Logdatei = "D:\Images\log.log"  
Const Partition = "1-1"  

Dim FSO                     ' FileSystemObject  
Dim WN                      ' WScript.Network  
Dim WS                      ' WScript.Shell  
Dim FO                      ' Ordner (Folder)  
Dim FI                      ' Datei (File)  

'für Zufallszahl wichtig'  
Const von = 1
Const bis = 5
Const MaxAlter = 30
Dim PruefAlter
Dim Anzahl
dim Zufall

Dim Quelle
Dim Logdat
Dim Image
Dim ImgName
Dim OK


Set FSO = CreateObject("Scripting.FileSystemObject")  
Set WN = CreateObject("WScript.Network")  
Set WS = CreateObject("WScript.Shell")  

'Prüfung ob lokales Image mit variablem Namen vorhanden'   
If FSO.FolderExists(Lokal) Then
    Set FO = FSO.GetFolder(Lokal)
    For Each FI In FO.Files
        If Right(UCase(FI.Name), 4) = Endung Then
	          'lokales Image vorhanden'        
            TestNetwork()
            If OK=1 Then
                Quelle= Lokal & FI.name
                Set Image = FSO.GetFile(Quelle)
                Image.Move(Netz)          
            End If
        End If
    Next
    'Prüfung ob Logfile vorhanden'  
    If FSO.fileExists(Logdatei) Then
		    'Logfile vorhanden'  
        Set Logdat = FSO.GetFile(Logdatei)
	      'erstellen einer Zufallszahl'  
	      Randomize()
	      Anzahl = bis - von + 1
	      Zufall = Fix(Rnd() * (Anzahl)) + von
	      'Prüfung ob Logfile älter als 30 + Random Tage ist'  
   		  PruefAlter = (date - MaxAlter - Zufall)
    	  If Logdat.DateLastModified < PruefAlter then
        'Logfile älter'  
            TestNetwork()
            If OK = 1 Then
                Image_Network()
            Else
                Image_Lokal()
            End If     
        Else
			      'Logfile nicht älter'  
            WScript.Quit  
    	  End If
  	Else
        'Logfile nicht vorhanden'  
        TestNetwork()
        If OK = 1 Then
            Image_Network() 
        Else
            Image_Lokal()
        End If      
  	End If      
Else
    set FO = FSO.CreateFolder(Lokal)
    TestNetwork()
    If OK = 1 Then
        Image_Network() 
    Else
        Image_Lokal()
    End If         
End If

Function TestNetwork()
    'Prüfung ob NAS erreichbar'  
    If FSO.FIleExists(NetzTestdatei) Then
        'Netzwerk vorhanden'  
        If FSO.driveexists(NetzB) then 
       	    WN.RemoveNetworkDrive NetzB, True, True
        End If
        WN.MapNetworkDrive NetzB, NASPfad, False
        OK=1
    End If   
End Function
     
Function Image_Network()
'Netzwerk vorhanden'    
'PC name generieren Computername + Datum'          
ImgName = Netz & WN.Computername & "_"  & Year(Date) & "-" & Right("0" & Month(Date), 2) & "-" & Right("0" & Day(Date), 2) & Endung  
'Starten von Image auf NAS'          
WS.Run("C:\Programme\Acronis\TrueImageWorkstation\TrueImageCmd.exe /create /partition:"&Partition&" /Filename:"&ImgName&" /log:"&Logdatei)  
WN.RemoveNetworkDrive NetzB, True, True
End Function

Function Image_Lokal
'Netzwerk nicht vorhanden'      
'PC name generieren Computername + Datum'          
ImgName = Lokal & WN.Computername & "_"  & Year(Date) & "-" & Right("0" & Month(Date), 2) & "-" & Right("0" & Day(Date), 2) & Endung  
'Starten von Image auf Lokal'          
WS.Run("C:\Programme\Acronis\TrueImageWorkstation\TrueImageCmd.exe /create /partition:"&Partition&" /Filename:"&ImgName&" /log:"&Logdatei)  
End Function

WScript.Quit
Member: FlorianH
FlorianH Feb 15, 2009 at 00:29:06 (UTC)
Goto Top
ey jungs entspannt euch, wieso kauft ihr nicht einfach eine Version AC True Image Home 2009 da geht das alles, auch monatlich mit einmaligen backup bei herunterfahren. und da ihr workstat. sichert tut es ja die wirkl. saubillige home version