
Ich suche nach einem guten Batch-Skript, das schnell alle bekannten sicheren temporären Ordner/Dateien von Windows-Rechnern (so viele Varianten wie möglich) findet und bereinigt (z. B. den Windows-Temp-Ordner, alle IE-Temp-Ordner der Benutzer usw.). Ich mag UI-Tools wie CCleaner (über Cleanmgr.exe), aber wenn ich versuche, mehrere Computer zu bereinigenschnell und/oder mit minimalem Aufwand, es wäre schön, ein Skript zu haben.
Außerdem könnte ich mit einem Skript mehrere Skripte miteinander verketten. Vielleicht eines, um dann verschiedene Antiviren- und/oder Malware-Detektoren zu starten.
Hat jemand ein gutes oder kann auf eine gute Quelle verweisen?
Antwort1
Hier ist ein kleines Skript, das ich geschrieben habe und das ich auf meinem USB-Dienstprogrammlaufwerk speichere ... GROSSARTIG für Citrix-Server :)
@echo off
Echo Started %time%
Echo Started %time% >> temps.txt
Echo Running for XP... >> temps.txt
Echo Running for XP...
FOR /F "tokens=*" %%G IN ('DIR /B /AD') DO IF EXIST "%%G\Local Settings\Temp\" (
RMDIR /S /Q "%%G\Local Settings\Temp"
MKDIR "%%G\Local Settings\Temp"
Echo Cleared %%G\Local Settings\Temp
Echo Cleared %%G\Local Settings\Temp >> temps.txt
)
FOR /F "tokens=*" %%G IN ('DIR /B /AD') DO IF EXIST "%%G\Local Settings\Temporary Internet Files\" (
RMDIR /S /Q "%%G\Local Settings\Temporary Internet Files\"
MKDIR "%%G\Local Settings\Temporary Internet Files\"
Echo Cleared %%G\Local Settings\Temporary Internet Files\
Echo Cleared %%G\Local Settings\Temporary Internet Files\ >> temps.txt
)
Echo Done.
Echo Running for Vista >> temps.txt
Echo Running for Vista...
FOR /F "tokens=*" %%G IN ('DIR /B /AD') DO IF EXIST "%%G\AppData\Local\Temp\" (
RMDIR /S /Q "%%G\AppData\Local\Temp\"
MKDIR "%%G\AppData\Local\Temp\"
Echo Cleared %%G\AppData\Local\Temp\
Echo Cleared %%G\AppData\Local\Temp\ >> temps.txt
)
FOR /F "tokens=*" %%G IN ('DIR /B /AD') DO IF EXIST "%%G\AppData\Local\Microsoft\Windows\Temporary Internet Files\" (
RMDIR /S /Q "%%G\AppData\Local\Microsoft\Windows\Temporary Internet Files\"
MKDIR "%%G\AppData\Local\Microsoft\Windows\Temporary Internet Files\"
Echo Cleared %%G\Local Settings\Temporary Internet Files\
Echo Cleared %%G\Local Settings\Temporary Internet Files\ >> temps.txt
)
Echo Done.
Echo Ended %time%
Echo Ended %time% >> temps.txt
Die Verwendung erfolgt auf eigene Gefahr usw. ... DIES LÖSCHT DINGE.
Ich führe dies aus dem Ordner „Dokumente und Einstellungen“ oder „Benutzer“ unter Vista aus. Sie können ganz einfach einen CD-Befehl oben einfügen, um dies von einem beliebigen Ort aus auszuführen.
cd %userprofile%
cd ..
Außerdem ist es meiner Erfahrung nach im Allgemeinen sicher, den temporären Ordner jederzeit zu leeren. Programme, die Dateien im temporären Ordner verwenden, sperren diese, und dieses Skript gibt bei dieser Datei einen Fehler aus und wird fortgesetzt.
Die Zeile „IF EXIST“ ist hier besonders praktisch, da sie verhindert, dass das Skript Ordner in „NetworkService“ und ähnlichen Ordnern erstellt. Wenn Sie es nicht unter Vista oder XP ausführen, ist dieser Abschnitt superschnell abgeschlossen.
Erstellt die Protokolldatei temps.txt, wo auch immer Sie das Skript ausführen
Bearbeiten: Hinweis von ##windows-server auf Freenode: F: Warum ermitteln Sie nicht gleich zu Beginn, auf welchem Betriebssystem es läuft, und führen den entsprechenden Abschnitt aus? A: Ich verwende das Skript häufig auf Offlinemedien, beispielsweise einer extrahierten Festplatte.
Antwort2
Seien Sie vorsichtig, wenn Sie temporäre Dateien löschen. Manche Software-Installationsprogramme speichern Dateien zwischen den Systemstarts dort. Einer meiner früheren Chefs hat dort wichtige Dateien gespeichert (aber er war in manchen Dingen auch nicht besonders schlau).
Führen Sie in einer Batchdatei Folgendes aus:
DEL /S /Q "%TEMP%\*.*"
Tut, was Sie wollen. Wenn Sie es als Anmeldeskript ausführen (oder allgemein, während Sie angemeldet sind), wird das temporäre Verzeichnis pro Benutzer gelöscht. Wenn Sie es als Startskript ausführen (während Sie es als .DEFAULT ausführen), wird das temporäre Verzeichnis pro Computer gelöscht.
Ich habe ein VBScript, das ich ausführe, um temporäre Dateien beim Booten und Anmelden basierend auf ihrem Alter zu löschen. Es ist etwas, das einem Kunden gehört, also kann ich es hier nicht posten (habe es auf seine Kosten geschrieben), aber es ist etwas, das ein Skripter in wenigen Minuten für Sie zusammenstellen könnte.
Mir ist keine unterstützte API bekannt, um die „Temporären Internetdateien“ des IE zu bereinigen. Ich nehme an, Sie könnten sie einfach löschen, aber ich würde es nicht tun.
Antwort3
Der bestesicherDie temporären Verzeichnisse können Sie mit cleanmgr bereinigen. Der Nachteil ist, dass Sie entweder sageset auf jedem Computer ausführen müssen oder (was viel einfacher ist) eine ADM-Datei mit den Registrierungseinträgen erstellen und diese mithilfe der Gruppenrichtlinie auf die Client-Desktops übertragen müssen. Der zu überprüfende Registrierungsschlüssel lautet: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches
Siehe auchSo automatisieren Sie das Datenträgerbereinigungstool in Windows XP
Antwort4
Warum verwenden Sie nicht einfach Ccleaner in Ihrem Skript, da es bereits alle Funktionen enthält, die Sie benötigen? Und verwenden Sie dann Psexec, um Ihr Skript zu pushen, das Ccleaner aufruft, und löschen Sie Ccleaner, wenn es fertig ist. Sie können eine INI-Datei hinzufügen, die alle gewünschten Einstellungen in Ccleaner enthält. Auf diese Weise müssen Sie das Rad nicht neu erfinden. Es geht nur um Wiederverwendung.