[XSnapshotC] - Cleaning & Backup Script - für Drive Snapshot & Co.

  • 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 aggressives 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:
    . ich es nutze ;)
    . DriveSnapshot ist ultra portabel (läuft notfalls auf der Windows Setup DVD (Windows PE) )
    . Acronis® & Co. hat bei einem Kollegen gnadenlos versagt...
    . DriveSnapshot passt notfalls sogar auf eine Diskette, beide Versionen (x64 & x86)
    . Acronis® ist eine unnötig große Installation, und man muss 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:\ )
    . ausgenommen systemnahe Programme z.B.: Virenscanner, Packprogramm, Rettungs Tools

    - das Script ist für Windows 10 & 11
    . Windows 10 ist ungetetet
    . ältere Versionen mit Einschränkungen
    . NT4 & NT5 laufen nicht
    . XP & Vista laufen nur mit den alten Scripten.

    Benutzung (kurz):
    - der Inhalt des Archives sollte in ein Unterverzeichnis auf einer zweiten Partition kopiert werden
    - DriveSnapshot herunterladen und in ".xSnapShotC" hinein kopieren.
    - "XSnapShotC.cmd" ausführen... fertig

    Benutzung (lang):
    - der Inhalt des Archives sollte irgendwo, in einem eigenem Ordner, auf einer anderen Partition/Laufwerk liegen, z.B. "D:\$REC\"
    - es kann aber auch sonnst wo liegen z.B. "Y:\$RECOVERY\PC\IMG\sonnstwo\keineAhnung\...\blubb\"
    - es erstellt das Backup relativ von seinem Ausgangsort.
    - beachtet aber Längeneinschränkungen des Programm-Pfades
    - 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@20200703.1549_W10.1909.x64.Pro_pWIN4
    . (ComputerName@Datum.Uhrzeit_WinVersion_tag)
    - DriveSnapshot herunterladen und in ".xSnapShotC" hinein kopieren.
    - "XSnapShotC.cmd" ausführen... für Reihnigungen & der Sicherung mit DriveSnapshot
    - "XSnapShotB.cmd" ausführen... für die sofortige der Sicherung aller Partitionen auf dem Windows-Laufwerk
    - jo, das Script läuft ja automatisch, was auch der Sinn des Scripts sein sollte.

    - optionale Funktionen in ".xSnapShotC":
    . mit "XSnapShot.BakApp.cmd" & "XSnapShot.BakApp_%EigenesBackUpProgramm%.cmd"
    . können eigene BackUp-Programme eingebunden werden.
    . mit XSnapShot.BakApp_DriveSnapshot_Profile_%Computername%.cmd
    . können eigene Anpassungen an die zu sicheren Partitionen vorgenommen werden
    - mit XSnapShot.WCln_Profile_%Computername%.cmd kann man eigene die Reinigungsprofile nutzen.

    - natürlich könnt ihr meine Scripte auch komplett zerlegen... :D

    ließt die Changelogs auf den späteren Download-Beiträgen, um bekannten Problemen entgegenzuwirken.
    wenn jemand auf der Windows-Partition noch Orte kennt, die man säubern könnte, dann immer her damit :P

    X64:
    es gibt eine 64Bit Version von DriveSnapshot,

    die ist wichtig für alle 64Bit Setup/PE-Systemen auf DVD/USB-Sticks seit Windows Vista.
    denn diese laufen nur in 64Bit und haben keinen 32Bit Support.

    wichtige/empfohlene Tools:
    - TreeSize um versteckten speicher ausfindig zu machen
    - DriveSnapshot das hier verwendete portable Backup & Recovery Programm
    - Rufus um (Windows/Linux) Images auf USB-Sticks zu schreiben.
    - Windows 10 & 11, für Installation/Upgrades oder Rettungssystem (ziemlich groß ~5GB)

    auch könnte vielleicht jemand meine Script-Code-Chaos 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
    2020-07-07: Windows 10 getestet, ältere Versionen mit Einschränkungen, modular, !Cleanmgr fix!
    2023-12-28: Windows 11 getestet, PowerShell only! ältere Versionen mit Einschränkungen, Cleanmgr bleibt eine Katastrophe...

    History:
    2011: (460)|2012: (360)|2014: (230)|2018: (130)|2020: (330)

  • 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 (2. März 2011 um 20:40) 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
    reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "%ComSpec%" /d "RUNASADMIN" /f >nul
    start "" cmd.exe /c "%~0" admin %*
    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

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!