Systemwiederherstellung aktivieren/deaktivieren

  • Hallo habe ein Problem mit der Systemwiederherstellung wegen der aktivierung/deaktiverung.
    Habe zwar schon ein Beispiel gefunden aber leider nur als VisualBasicScript vielleicht kann mir wer
    helfen den Code ins Autoit zu konvertieren.

    Vielen Dank

    Spoiler anzeigen

    'srdisableallbutsystemdrive.vbs

    Code
    Set WshShell = WScript.CreateObject("WScript.Shell")
    Set WshSysEnv = WshShell.Environment("PROCESS")
    Set objSysRestore = GetObject("winmgmts:\\.\root\default:SystemRestore")
    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
    Set colDrives = objWMIService.ExecQuery("Select * From Win32_LogicalDisk Where DriveType = 3")
    For Each objDrive in colDrives
      If (objDrive.DeviceID) <> WshSysEnv("SYSTEMDRIVE") Then
    objSysRestore.Disable(objDrive.DeviceID & "\")
      End If
    Next

    'systemrestoreenable.vbs

    Code
    Set Args = wscript.Arguments
    If Args.Count() > 0 Then
    Drive = Args.item(0)
    Else 
    Drive = ""
    End If

    'systemrestoredisenable.vbs

    Code
    Set obj = GetObject("winmgmts:{impersonationLevel=impersonate}!root/default:SystemRestore")
    If (obj.Enable(Drive)) = 0 Then
    'wscript.Echo "Success"
    Else 
    'wscript.Echo "Failed"
    End If

    'createrestorepoint.vbs

    Code
    Set IRP = getobject("winmgmts:\\.\root\default:Systemrestore")
    MYRP = IRP.createrestorepoint ("new_point", 0, 100)

    Einmal editiert, zuletzt von eule (24. August 2010 um 07:48)

  • Hab nicht viel Erfahrung mit VBS, aber ich hoffe, dass es so im groben passt.

    Spoiler anzeigen
    [autoit]


    #region srdisableallbutsystemdrive.vbs
    ;~ $WshShell = ObjCreate("WScript.Shell")
    ;~ $objSysRestore = ObjGet("winmgmts:\\.\root\default:SystemRestore")
    ;~ $objWMIService = ObjGet("winmgmts:\\.\root\cimv2")
    ;~ $colDrives = $objWMIService.ExecQuery("Select * From Win32_LogicalDisk Where DriveType = 3")
    ;~ For $objDrive In $colDrives
    ;~ If $objDrive.DeviceID <> EnvGet("SYSTEMDRIVE") Then
    ;~ $objSysRestore.Disable($objDrive.DeviceID & "\")
    ;~ EndIf
    ;~ Next
    #endregion srdisableallbutsystemdrive.vbs

    [/autoit] [autoit][/autoit] [autoit]

    #region systemrestoreenable.vbs
    ;~ If $CmdLine[0] > 0 Then
    ;~ $Drive = $CmdLine[1]
    ;~ Else
    ;~ $Drive = ""
    ;~ EndIf
    #endregion systemrestoreenable.vbs

    [/autoit] [autoit][/autoit] [autoit]

    #region systemrestoredisable.vbs
    ;~ $obj = ObjGet("winmgmts:{impersonationLevel=impersonate}!root/default:SystemRestore")
    ;~ If $obj.Enable($Drive) = 0 Then
    ;~ MsgBox(0, "Success", "")
    ;~ Else
    ;~ MsgBox(0, "Failed", "")
    ;~ EndIf
    #endregion systemrestoredisable.vbs

    [/autoit] [autoit][/autoit] [autoit]

    #region createrestorepoint.vbs
    ;~ $IRP = ObjGet("winmgmts:\\.\root\default:Systemrestore")
    ;~ $MYRP = $IRP.createrestorepoint("new_point", 0, 100)
    #endregion createrestorepoint.vbs

    [/autoit]
  • Hi, kenn mich mit VBS leider auch nicht aus, aber ich habe ein Interessantes Script im Internet gefunden.
    Vielleicht hilft dir ja das.

    Systemwiederherstellung deaktivieren / neuaktivieren und für bestimmtes Laufwerk deaktivieren z.b. E:\

    Spoiler anzeigen
    [autoit]


    _SRPanpassung(1)

    [/autoit] [autoit][/autoit] [autoit]

    Func _SRPanpassung($varSRP)
    ;Variablenfestsetzung für Systemwiederherstellungsaenderungen
    Dim $Query_PC, $ObjWMIService, $SRP_DisAll, $SRP_EnabAll, $SRP_DisE, $SRP_Change_DisAll, $SRP_Change_EnabAll, $SRP_Change_DisE
    $Query_PC = "."

    [/autoit] [autoit][/autoit] [autoit]

    If $varSRP = 1 Then
    $ObjWMIService = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & $Query_PC & "\root\default")

    [/autoit] [autoit][/autoit] [autoit]

    $SRP_DisAll = $ObjWMIService.Get("SystemRestore")
    $SRP_EnabAll = $ObjWMIService.Get("SystemRestore")
    $SRP_DisE = $ObjWMIService.Get("SystemRestore")

    [/autoit] [autoit][/autoit] [autoit]

    ;Anpassung der Systemwiederherstellungseinstellungen (SystemRestprePoints = SRP)
    ;Alle SRP deaktivieren
    $SRP_DisAll.Disable("")
    ;Wartezeit, damit alte RestorePoints geloescht werden
    Sleep(10000)
    ;Alle SRP aktivieren
    $SRP_EnabAll.Enable("")
    Sleep(25000)
    ;SRP auf E: deaktivieren
    $SRP_DisE.Disable("E:\")
    Else
    EndIf
    EndFunc

    [/autoit]

    Quelle: tabtic@win-lite.de

    Systemwiederherstellungspunkt erstellen

    Spoiler anzeigen
    [autoit]


    $text = InputBox("Eingabefenster", "Name des Wiederherstellungspunktes")
    CreateRestorePoint($text)

    [/autoit] [autoit][/autoit] [autoit]

    Func CreateRestorePoint($sRestorePointName)
    Local $objSystemRestore
    $objSystemRestore = ObjGet("winmgmts:{impersonationLevel=impersonate}!root/default:SystemRestore")
    If Not $objSystemRestore.createrestorepoint($sRestorePointName, 0, 100) = 0 Then SetError(1)
    EndFunc

    [/autoit]


    Quelle: Fr4g3r@computerbase.de

    ----------------------------------------------------------------------------------------------------------------------
    Früher musste man Drachen töten und konnte die Jungfrau heiraten.
    Heute gibt es keine Jungfrauen mehr, man muss den Drachen heiraten!