[XSnapshotC] - Cleaning & Backup Script

  • hab (mal wieder) n kleines Script gebastelt,
    was mir im täglichem digitalem leben hilfreich ist...


    weil es mir auf den Sack geht ständig die Festplatte zu säubern,
    nur um das Backup klein zu halten, so habe ich es automatisiert


    zu Archivierungszwecken packe ich mein Script hier rein,

    und teile es somit mit euch, wenn jemand es auch nutzen will...


    zur Nutzung solltet ihr folgendes wissen:

    - es ist ein aggresives Reinigungs-Script

    . es löscht die Schattenkopieen/Prefetcher/Memory Dump Files/WindowsUpdate (SoftwareDistribution)

    . auch Windows Search wird geleert

    . ich empfehle in den 'Indizirungsoptionen' den Pfad auf D:\ zu setzen

    - es wird DriveSnapshot als Backupprogramm genutzt

    . weil DriveSnapshot es ultra portabel ist (läuft notfalls auf der Windows Setup DVD (Windows PE) )

    . weil Acronis® & Co. bei einem mir bekannten Kollegen kläglich versagt hatte...

    . weil DriveSnapshot notfalls sogar auf eine Diskette passen würde...

    . Acronis® ist eine unnötig große Installation, und dann muss man noch zusätzlich ein Rcoverymedium erstellen...
    - es wird eine partitionierte Festplatte benötigt

    . wo das System ( C:\ ) strickt von dem Rest Programme/Nutzerdaten/Backup getrennt sein sollte ( D:\ )
    . und ich meine wirklich jedes Programm, ausgenommen systemnahe Programme z.B. ein Virenscanner
    - das Script ist auf Windows 10 optimiert, sollte aber ab Windows 7 laufen, wird aber nicht mehr darauf getestet.


    Benutzung (kurz):
    'snapshot.exe' & 'SnapshotC.cmd' in ein Unterverzeichnis auf einer zweiten Partition kopieren und ausführen... fertig


    Benutzung (lang):
    'snapshot.exe' und 'XSnapshotC.cmd' sollten irgendwo gemeinsam auf einer anderen Partition liegen z.B. "D:\$REC\"
    es kann aber auch sonnst wo liegen z.B. "Y:\$RECOVERY\PC\IMG\sonnstwo\keineAhnung\...\blubb\"
    da es das Backup relativ von seinem Ausgangsort erstellt.
    achtet aber auf die maximale Pfadlänge
    255 Zeichen auf NTFS

    bzw. 97 Zeichen, wenn man beim Windows booten ein Image zurück-spielen möchte (Regestry-Einschränkungen)
    es erstellt ein Unterorder wie dieses hier:
    alt: MIC-WS@NT6.1x64-Ult_20110422-1227_SP1

    neu: MIC-WS@Win10x64-1809-Prf_20181223-1325_frz

    (ComputerName@WinVersion-Release-Edition_Datum-Urzeit_tag's)
    jo, das Script läuft ja automatisch, was auch der Sinn des Scripts sein sollte.
    also einfach ausführen und warten... fertig


    X64:
    es gibt eine 64Bit Version von DriveSnapshot,

    die ist wichtig für die Windows Vista/7/8 Setup-DVD bzw. deren PE Versionen,
    denn diese laufen nur in 64Bit und haben keinen 32Bit Support.


    wenn jemand auf der Windows-Partition noch Orte kennt, die man säubern könnte, dann immer her damit :P


    auch könnte vielleicht jemand meine Script-Code-Imitation anschauen...

    ...und da mal seinem Senf dazugeben
    vielen dank & have fun...


    [Edit:]
    2013-11-17: Windows NT5.x, Support entfernt, dafür ein letztes 'End of Life'-Script erstellt.

    2015-08-17: Windows Vista entfernt, letztes funktionierendes Script

    2018-12-23: Windows 7/8/8.1, offizieller Support entfernt, keine Tests


    History:
    2011: (460)
    2012: (360)
    2014: (220)
    2015: (~10)


  • jo, man kann ja das script für jedes backup programm nutzen,
    welches sich per cmd ansteuern lässt


    im script sind noch ein paar orte mehr als ich in der beschreibung aufgefürt


    besonnders firefox ist lustig
    nicht das ich für die C:\users\< benutzer > ne forschleife basteln durfte,
    nein auch für %appdata%\Mozilla\Firefox\Profiles\< profile > durfte ich quasi ne zwite dazbasteln...
    ...naja for-schleifcen sind halt unübersichtlich... war halt n kleiner aufwand...

  • ich habe gerade noch kleine funktionen eingebaut...


    1# das script verweigert jetzt den dienst, wenn es sich auf %SystemDrive% befindet, genauso wenn snapshot.exe fehlt
    2# ich habe die ordnernamen erweitert, jetzt werden die ServicePacks mit angegeben
    3# die zeitstempel zeigen endlich eine 0 statt ein leerzeichen, wenn die zeit zwischen '_0:00' & '_9:59' liegt


    todo:
    - irgendwie ne lösung finden, wenn der WScriptHost aus, dass man ihn einfach aktivieren kann...
    (benutzer ist ein eingeschränkter DAU mit admin passwörtern)
    - ich brauch noch eine einfache möglichkeit um windows xp 'pro' & 'home' zu unterscheiden
    - jemand könnte vielleicht auch mal meine rechtschreibung (die im script) kritisieren :P


    download: snapshot (build 2011-02-26 [Lpy]).zip

  • Leider funktioniert dein Script bei mir unter WinXP nicht unter Win7 habe ich es noch nicht probiert.
    Es öffnet sich nur ein Fenster > Ausfuhren als < ich bin als Admin angemeldet und benutze keine Kennwörter.
    Nach meiner Erfahrung strikt man sowas immer so einfach wie möglich, weil einfach einfach einfach ist :)
    Da auf meinem Rechner sowieso immer weitestgehend automatisiert unnötige Dateien gelöscht werden würde ich auch die Zusatzfunktionen nicht unbedingt benötigen.


    Eigentlich habe ich mir für meine Sicherungen auch schon selber was erstellt, eine bat mit einer Zeile naja aber es funktioniert ;)

  • ok das skript ist ehr dafür ausgelegt, dass der standartuser eingeschrenkt ist
    das unter xp immernoch als admin gearbeitet wird hätte ich beachten sollen


    aber wenn ich auf solche user treffe, erzähle ich immer von SuRun & einen 2# notfall admin accound...


    ...habe ich richtig gelesen!? du benutzt keine passwörter!? böse...böse...böse... XD
    nich das ich dich belehren möchte, aber du solltest wissen, das sich einige programme daran verschlucken
    wie man sieht... selbst windows... XD


    als workaround für sicherheitsunbewusste faule user empfehle ich nicht als passwort einfach nur ne "0" oder so zu nehmen...
    nimm die "#" die liegt nähr an der entertaste... XD


    aber du kannst einfach die admin-prüfroutine aus dem skript löschen...


    dazu löscht man von :ADchk bis vor :xRun
    du kannst auch das script einfach mit 'snapshot.cmd admin' aufrufen...


    [edit:]
    adminprüfroutine wurde geändert, so das aufrufen von 'snapshot.cmd admin' nicht mehr nötig ist.
    das script erkennt jetzt selbst ob es adminrechte hat.
    ---


    mal was anderes


    ich habe festgestellt, dass runas ab vista völlig unbrauchbar ist (uac sei dank)
    wer also sein vista/7 mit so tools wie xp-antispy den windows-scripting-host deaktiviert hat,
    der ist selbst schuld...
    (powershell wäre ne lösung, ist aber bei vista nicht per default dabei... -_- )


    also kommt es demnächst wieder raus und ich schreib ne nette warnmeldung
    mit den verweis auf die gelben seiten...


    ---


    p.s.
    wenn du willst, dann pack ich ins nächste paket ein extra script für xp-admins...


    p.p.s.
    ich werde auch die funktion einbauen,
    dass der WSH automatisch eingeschaltet wird,
    wenn das script irgendwie adminrechte erlangt...

  • update: snapshot (build 2011-02-27 [WS]).zip


    -neue spielereien mit den WSH:
    #1 er versucht sich immer einzuschalten
    #2 wenn das nicht klappt hat XP noch die alte methode adminrechte zu erlangen
    #3 vista&7 haben ein problen, außer wenn man es manuell einmalig mit adminrechten startet
    #4 für 7 arbeite ich an eine powershell lösung; für vista habe ich noch kein rezept...


    -Datenträgerbereinigung: Service Pack Cleanup (~640MB)
    dank des neuen servicepackes habe ich diese funktion eingebaut
    diese funktioniert für alle systeme, ist jedenfalls besser als für jedes system ein rezept zu schreiben


    !ACHTUNG!
    daduch ist keine deinstallation des ServicePacks mehr möglich!!!
    die bereinigung braucht etwas zeit, also nicht ungeduldig werden... :P

  • Unter XP benutze ich schon immer admin ohne Passwörter sonnst würden meine nerven das nicht ertragen :)


    Mit Drive Snapshot erstelle ich aus Platzgründen immer ein differentielles backup auf die schnelle konnte ich keine derartige Funktion im Script erkennen aber sowas ließe sich sicher leicht nachrüsten.


    Mein grandioses Backup Script sieht wie folgt aus :)
    snapshot.exe c: "e:\Sicherungen\XP Image\diff-xp\HDA01-$day-$month-$year-$type.sna" -W -h"e:\Sicherungen\XP Image\diff-xp\HDA01-09-03-10.hsh"


    Eine Vollständige Sicherung muß natürlich vorhanden sein, mit dem Script werden nur noch die Differenzen zum ersten Backup gesichert diese sind voneinander unabhängig, bei Platzmangel kann man ältere Sicherungen löschen nur das erste vollständige natürlich nicht.

    Einmal editiert, zuletzt von MegaDeath () aus folgendem Grund: inkrementelles in differentielles geändert :)

  • also ein grundpasswort ist eigendlich pflicht, allein um eine erste hürde einen angreifer in den weg zu stellen, aber... egal...


    ich habe auch kaum platz, da aber ich seltener backup's mache lösche ich dann die alten von hand.
    ich habe eh maximal 3 vollbackups (großvater/vater/kind)
    und da ich ja dieses säuberungs-script habe und sowieso radikal alles von C: fern halte, so ist bein bakup klein (zz 7~8GB)


    ich mag eh ehr unabhänige bakups


    man könnte das script sicher inkrementell anpassen, aber das liegt nicht in meinem interresse...
    wenn du willst, dann kannst du ruig ein Fork aus meinem skript machen... :P


    p.s.
    ich wollt nur nochmal sagen, der hauptschwerpunkt dieses scrips sind die systemerkennung & reinigungsarbeiten,
    für alles andere darf jeder seine backuplösung verwenden

  • update: snapshot (build 2011-03-03 [WS]).zip


    so habe nun auch für kaputte Vista-DAU's ein Administator-Rezept :P
    damit hat das script nun 4 verschiedene möglichkeiten Adminrechte zu verlangen
    (powershell/WSH/kompatibelitätsmodus+regestry/cmd-runas)


    die lösung die ich gefunden habe ist etwas ungewöhnlich,
    ich selbst bezeichne sie als ein 'dreckigen' Workaround
    aber sieht selbst, das ist der code


    Code
    1. reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "%ComSpec%" /d "RUNASADMIN" /f >nul
    2. start "" cmd.exe /c "%~0" admin %*
    3. reg delete "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "%ComSpec%" /f >nul


    wie man sieht schreibe ich in die regestry mit benutzerrechten,
    dass die CMD.exe im kompatibelitätsmodus mit adminrechten gestartet werden soll :P


    auf die idee bin ich über den kompatibelitätsmodus gekommen.
    zuerst wollte ich mit der variabel set __COMPAT_LAYER=RunAsAdmin
    in batch-script programme über den kompatibelitätsmodus starten.
    weil es aber irgendwie überhaupt nicht geklappt hat,
    kam ich irgendwie dann auf die regestry und hab den schlüssel (wieder-)gefunden


    so kann man jetzt jedes programm mit adminrechten startn
    und die DAU's klicken alles schön brav ab...
    ich jedenfalls schau jetzt 2x hin wenn die UAC kommt...


    ...have fun.


    so ich würde dieses script jetzt weitesgehend als final bezeichnen,
    das einzigste was man daran noch ändern kann sind dann
    individuelle rezepte für die verschiedenen programme...


    [p.s.]
    ein paar tipps hab ich noch:
    versucht den browsercache auch auszulagern.
    das muss meist per ini/config bearbeitung mit einem texteditor gemacht werden
    bzw. über schlecht dokumentierte einstellungen...
    - internet explorer ist einer der einfacheren
    - bei opera darf man sich schon auf der seite opera:config die unweiten der einstellungsmöglichkeiten duchforsten
    - firefox... keine ahnung... letzendlich weis google immer rat...


    auch empfehle ich mal bei in
    C:\Users\< benutzer >\AppData
    die ordner mal anzuschauen, da ist sicher immernoch etwas was sich auslagern oder löschen lässt...


    [edit:]
    schnell n fix gemacht
    hatte vergessen den snapshot-befehl wieder zu aktivieren...


    übrigens habe ich festgestellt, wenn man per reboot mit snapshot ein backup wieder einspielen will,
    dann sollte der komplette pfad nicht länger wie 92 zeichen sein...
    obs n bug von snapschot oder windows ist... keine ahnung...

  • update: snapshot (build 2011-04-22 [Lpy])


    - Editions-Erkennung wieder aktiviert & verkürzt (NT6.x)
    - neue adminprüfroutine (%1=admin wird nicht mehr benötigt)
    - Tags hinzugefügt:
    . %RevSys% (verwendbar für installations-zäler z.B.: "Ver-B")
    . %RevStep% (verwendbar für zusatzinformationen z.B.: "SP1-ERR")
    - neue nutzloser ordner:
    . AppData\Local\Microsoft\Terminal Server Client\Cache (40MB)
    . AppData\Local\Downloaded Installations
    . %SystemDrive%\PerfLogs

  • update: snapshot (build 2011-04-23 [VM])


    - Editions-Erkennung jetzt auch für NT5: XP(Home&Pro) / XP64 / 2003
    - neue adminprüfroutine: jetzt angepasst für NT5


    - keine unterstützung für Win2000 (NT5.0)
    .ich habe festgestellt, dass programme wie REG.EXE 'out of the box' nicht vorhanden sind
    .die fehlenden programme müsste man sich aus dem "Windows 2000 Resource Kit" besorgen
    .auch sollte man Win2000 generell nicht mehr verwenden, weil es ja kein support dafür gibt

  • update: snapshot (build 2011-04-25 [VM])


    - Editions-Erkennung:
    . Windows Home Server (2003)
    . Windows Home Server (2011)
    . Windows Server 2008 (R2)
    - weitere optimierungen der Editionen
    - Admin-Prüfroutine musste geändert werden,
    . es gab probleme mit der französischen textausgabe.


  • ...
    übrigens habe ich festgestellt, wenn man per reboot mit snapshot ein backup wieder einspielen will,
    dann sollte der komplette pfad nicht länger wie 92 zeichen sein...
    obs n bug von snapschot oder windows ist... keine ahnung...



    da die gefahr groß ist, das der bug mit meinen backup-konzept kollidiert,
    hatte ich ein bugreport rausgeschickt.


    Antwort:
    meinen Sie das Restaurieren während des Neustartes?
    Dort gab es früher eine Limitierung der kompletten Kommandozeile auf 255 Zeichen,
    was ungefähr zu den 92 Zeichen Ihres Pfades passen könnte.
    In der aktuellen Version kann der Pfad bis zu ca. 240 Zeichen lang sein.
    Die Einschränkung kommt durch die Längenbeschränkung in der Registry,
    die zum Zeitpunkt des Restores aktiv ist.



    also wenn ihr DriveSnapschot verwendet, dann die aktuellste version:
    v1.40 - Apr 7 2011
    das werde ich aber noch testen, da ich z.z. noch die version verwende:
    v1.40 - Mar 25 2010


    ergebnis für v1.40 - Apr 7 2011:


    E:\!RECOVERY\IMG\MIC-WS_A@NT6.1x64-Win7-Ult_20110426-2221_SP1_SPx-ERR__________________abcdefghi
    123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456


    = 97
    ...keine änderung


    nunja, allzulange computernamen / pfade & Tags sollte man halt nicht verwenden...

  • update: snapshot (build 2011-05-02 [WS])

    - die Fehler-Prüfroutinen für Snapshot wurden überarbeitet und ans Ende des Scrips verlegt,
    . so kann das Script schonmal reihnigen, troz fehlendem Programm, dafür gibs ein Warnhinweis und eine Fehlermeldung.

  • update: SnapshotC (build 2011-08-12 [WS])


    - die blockfilter für NT4.x & 5.0 funktionierten nicht (falsche position)
    - experimentelle unterstützung für Win8 (habe es in die selbe gruppe wie Vista & 7 geschmissen :D )
    . es ist sinnfrei ein backup von WinPE zu machen, darum startet es snapshot.exe direkt für eine manuelle wiederherstellung
    . eine atomatische wiederherstellung ist zu fehleranfällig bzw. um die fehler auszuschließen, sind sicherlich einiges an zeilen nötig...
    . wenn jemand eine automatische wiederherstellung haben will, dann fühler er/sie/es sich frei hier einen breitrag zu schreiben.
    . jedenfalls empfehle ich es nicht, da sind zu viele variablen zu beachten, welche man unter WinPE noch schwiriger "out of the box" zustande bekommt
    - irgendwann gibt es Menüs sind aber noch keine drin, dafür aber schon ein simples hilfemenü erstellt
    . und ein paar cmd-befehle aktiviert:
    . (-www geht sofort hier her)
    . (-help das hilfemenü)
    . (-ss -sr -sh shutdownbefehle, der reihenfolge: herrunterfahren, neustart, ruhezustand)
    . es geht auch '/' statt '-' und die befehle sind mehrfach vorhanden z.b.: -? -h -help (einfach mal das hilfemenü aufrufen bzw. im chaos-script nachschauen :P )
    - habe den scriptnamen leicht geändert zur abgenzung von der .exe
    - WinPE wird jetzt erkannt (*muss noch testen, sollte aber funktionieren)


    so das wars... have fun.


    [edit:]
    - WinPE, ok das script wirft n paar fehlermeldungen aus, startet aber snapshot so wie es soll
    - scheind nicht kritisch zu sein, sind nur echo.texte, die nicht richtig dargestellt werden