baloo0
Goto Top

LöschTool mit Protokolierung und Überlänge

Hi,

ich suche seit einiger Zeit ein Tool für Windows, mit dem ich Daten sicher löschen(nicht wiederherstellbar) kann und diese auch mitprotokoliert werden. So weit so gut, bin da auf etliche gestoßen, die auch prima funktionieren, ua OO SafeEraser oder SecureEraser.
Doch mein Problem ist, dass ich mit Daten und Ordnerstrukturen arbeite, die weit über 260-Zeichen-Pfadtiefe drübergehen und eben diese Tool, so gut sie funktionieren, brechen hier ab, da dies von denen nicht unterstütz wird, was mir vom Support auch mitgeteilt worden ist.
Habe bis dato noch kein brauchbares gefunden, dass dies bewerkstelligen kann.

Kennt zufällig jmd ein solches oder wurde mit soetwas konfrontiert.
Das Problem meinerseits ist, dass ich bei den Daten auch wirklich ein Protokoll brauche, dass diese gelöscht sind, und dass ich mich immer mit subst-Befehl durchkämpfen muss ist sehr anstrengend.

Danke im Voraus face-smile

Content-Key: 195746

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

Printed on: April 23, 2024 at 19:04 o'clock

Member: pieh-ejdsch
pieh-ejdsch Dec 13, 2012, updated at Dec 16, 2012 at 10:46:50 (UTC)
Goto Top
moin baloo0,

Sysinternals (Microsoft) hat das Freeware Löschtool sDelete, welches auch sicheres Löschen beinhaltet.

In einen Pfad mit Überlänge musst Du aber erstmal eine Zuwesiung machen, da der Explorer ja schon vorher meckert.

Für das Sichere Löschen bis Dahin hab ich es so gebastelt.
Wenn Du die Pfade Komplett übergeben willst, musst Du die existenzPrüfung abstellen.
Die Variablen liessen sich auch so zusammensetzen, dass der komplette Pfad einer Zuweisung (mit ein paar Änderungen)
ausgelesen werden könnte.
@echo off
setlocal
prompt $g$s
if "%~1" equ "" echo Syntaxfehler. 1>&2 &exit /b 1  
if not exist "%~1" echo Datei nicht gefunden! 1>&2 & exit /b 2  
if "%~1" equ "/?" echo Loescht Dateien/Verzeichnisse mittels Sdelete von Sysinternals. &echo %~n0 Datei [...] &exit /b 0  
set "SDelete=%~dp0sdelete.exe"  
if not exist "%SDelete%" 1>&2 echo "%Sdelete%" wurde nicht gefunden! &exit /b4  


:InFile
if not exist "%~1" echo Datei nicht gefunden! goto :next  
set "File=%~1"  
set "BLength=%File:~220%"  
set "Length=%File:~0,220%"  
set "ToDelete=%~1"  
set "ToSubst=%~d1"  
set "SubstLW="  
set /a WH = 32
set "R="  
if not defined BLength goto :NotLong
for /d %%i in ("%Length%.X\..") do set "ToSubst=%%~fi"  
for /d %%i in ("%Length%.X") do set "ToDelete=%%~ni%BLength%"  
for %%i in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do @(vol %%i:|cd>nul)2>&1|find "System">nul&&set "SubstLW=%%i:"  
if not defined SubstLW 1>&2 echo Kein Freies Laufwerk gefunden!& exit /b 3
subst %SubstLW% "%ToSubst%" && echo Pfadzuweisung "%ToSubst%" Laufwerk-^> %SubstLW%  

 rem Pfad aus SubstLW auslesen
for /f "tokens=1-3*delims=: " %%i in ('subst ^|find /i "%substLW%\:" ') do echo LW=%%i &set "RetourePfad=%%l"  

pushD %SubstLW%

:NotLong

"%sdelete%" %R% "%ToDelete%" |more +4|find /v ""  

set /a WH -=1
if exist "%ToDelete%\" set "R=/r"  
if %WH% gtr 1 if exist "%ToDelete%" goto :Notlong  
cd |find /i "%SubstLW%" >nul && popD  
subst %SubstLW% /d
:next
if "%~2" neq "" shift &goto :InFile  

echo Fertig.
pause

[Edit] Suche nach nicht zugeordneten Laufwerken verbessert
alt: Falsches setzen bei leeren Cardreadern oder CD-LW
for %%i in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do @vol %%i: >nul 2>&1 ||set "SubstLW=%%i:"
Berichtigt: Suche nur nach Fehlermeldungen: Das System kann den angegebenen Pfad nicht finden.
for %%i in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do @(vol %%i:|cd>nul)2>&1|find "System">nul&&set "SubstLW=%%i:"
[/Edit]
Tags: Ungenutzte Laufwerke finden; Popup bei Test auf Laufwerk verhindern
[Edit2]
Zuweisung Pfad für Subst sowie Rest des Übrigen Pfades verbessert.
alt: Schlug vorher fehl bei Punkt oder Backslash am Ende der gekürzten Länge:
for /d %%i in ("%Length%\..") do set "ToSubst=%%~fi" 
for /d %%i in ("%Length%") do set "ToDelete=%%~nxi%BLength%" 
Berichtigt:
for /d %%i in ("%Length%.X\..") do set "ToSubst=%%~fi"
for /d %%i in ("%Length%.X") do set "ToDelete=%%~ni%BLength%"
[/Edit2]
Tags: Pfadnamen kürzen; Pfad kürzen
Gruß Phil
Member: baloo0
baloo0 Dec 23, 2012 at 17:17:08 (UTC)
Goto Top
hi,

vielen dank für deine Hilfe..
sobald ich aus dem urlaub wieder retour bin und einen pc habe, werde ich dies soweit austesten.

lg
Member: baloo0
baloo0 Jan 03, 2013 at 12:25:39 (UTC)
Goto Top
hi,
danke dir für deine bemühungen aber ich habe mir das angeschaut und habe mich mit deinem script rumgespielt, jedoch erfüllt es nicht ganz meine kriterien.

laut deinem script müsste ich den folder angeben in dem die dateien gelöscht gehören sonst fnktioniert es nicht und es bricht ab mit der meldung dass eine datei/folder drinnen liegt.

bei mir ist es so, dass ich sicherungen von festplatten habe und diese 1:1 mit der gesamten Struktur in einen Ordner ablege, und ebenso bandrücksicherungen. Wenn das entsprechende gefunden wurde, muss ich alles in diesen verzeichnissen löschen, was nicht so das große drama wäre würde ich nicht ein Protokoll mit den gelöschten Daten abgeben müssen.
Und wenn ich in einem Ordner als bsp "Z:\RetourSicherung\", 10 Rücksicherungen habe, will ich mit einem klick, den Löschauftrag starten. Mit den von mir genannten Tools kann ich das auch machen, nur brechen die ab, wenn eben ein Überlanger Pfad vorkommt, und daher muss ich mir durch "subst" weiterhelfen, was manchmal extrem in die zeit geht, weil ich ab und zu einige male substituieren muss.

Dein script würde mir helfen, wenn ich alle dateien in einem verzeichniss drinnen habe und auch weiß welches verzeichnis das ist, was jedoch nicht der fall ist.
Member: pieh-ejdsch
pieh-ejdsch Jan 04, 2013 updated at 22:32:32 (UTC)
Goto Top
moin,

Automatische Zuweisung von Laufwerken bei zu langen Pfadtiefen
damit könntest Du ein komplettes Protokoll ALLER zu tief liegenden Daten erstellen (mit der gesamten Pfadlänge)
Den sichtbaren Rest protokolierst Du eventuell mit dem Verzeichnisauflister.

In Verbindung mit den Löschscript oder nur Sdelete klapperst Du Die dort erzeugten Virtuellen Laufwerke vom tiefsten her ab.

Gruß Phil