marwed
Goto Top

INHALT des Papierkorbs auslesen

Hallo Forum-User ...

Ich möchte den Inhalt des Papierkorbes (XPPro) auf bestimmten PCs vor (scriptgesteuertem) Leeren in ein Logfile auslesen lassen (am liebsten per Batch - meinetwegen auch per vbs).
Klingt eigentlich supereinfach.

Aber:
In den 'Recyclern' sind nur Nummern der Sicheheitsprinzipale sichtbar.
Den Win-Ordner "Papierkorb", der die Dateinamen zeigt, kann ich per console / script nicht erreichen.

Wie könnte ich mich einer Lösung nähern ... ?
face-smile
Dank, Marwed

Content-Key: 142882

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

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

Mitglied: 77559
77559 May 15, 2010 at 21:40:52 (UTC)
Goto Top
Hallo,

mit VBScript geht das schon, ob man auch an den alten Ordner herankommen kann weiss ich nicht.

' ListRecycleBin.vbs  
Const RECYCLE_BIN = &Ha&

Set objShell = CreateObject("Shell.Application")  
Set objFolder = objShell.Namespace(RECYCLE_BIN)
Set objFolderItem = objFolder.Self
Wscript.Echo objFolderItem.Path

Set colItems = objFolder.Items
For Each objItem in colItems
    Wscript.Echo objItem.Name
Next

Gruß
LotPings
Member: rubberman
rubberman May 15, 2010 at 23:39:38 (UTC)
Goto Top
Hallo Marwed und LotPings,

dem Script ist nichts hinzu zu fügen. Falls es aber im Kontext eines Batchfiles benötigt wird, kann man es noch als Pseudo-Oneliner zusammenschrumpfen.

@echo off &setlocal
:: erzeuge vbs
>"%temp%\temp.vbs" echo Set objFolder=CreateObject("Shell.Application").Namespace(10):For Each objItem In objFolder.Items:Wscript.Echo objItem.Name:Next  
:: erzeuge log
>"recycler.log" cscript //nologo "%temp%\temp.vbs"  
:: lösche vbs
del "%temp%\temp.vbs"  

Grüße
rubberman
Member: Marwed
Marwed May 16, 2010 at 10:10:52 (UTC)
Goto Top
Danke, das ist es ....
Habe noch was drumgebastelt ;)
Gruß, Marwed

@echo off &setlocal 
:: Listet Inhalt Papierkorb

:: Falls WSHost deaktiviert, einschalten
for /F "tokens=3" %%i in ( 'REG QUERY "Hkey_Local_Machine\Software\Microsoft\Windows Script Host\Settings" /v Enabled' ) do set WSHOST=%%i  
if not %WSHOST%==0x1 (
	REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings" /v Enabled /t REG_DWORD /d 1 /f > nul  
	set RESETWSHOST=1
)

:: erzeuge vbs 
>"%temp%\temp.vbs" echo Set objFolder=CreateObject("Shell.Application").Namespace(10):For Each objItem In objFolder.Items:Wscript.Echo objItem.Name:Next   
:: erzeuge log 
>>"recycler.log" cscript //nologo "%temp%\temp.vbs"  
echo ---RecBinEmpty---%DATE%---%time:~0,8%--- >> recycler.log
echo. >> recycler.log

:: lösche vbs 
del "%temp%\temp.vbs"  

:: falls WSHOST  vorher deaktiviert war, wieder ausschalten
if %RESETWSHOST%==1 (
	REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings" /v Enabled /t REG_DWORD /d 0 /f > nul  
)
set RESETWSHOST=
Member: bastla
bastla May 16, 2010 at 11:18:32 (UTC)
Goto Top
@rubberman
Zur Not täte es auch (wenn schon, denn schon face-wink) die folgende Zeile 3:
>%temp%\temp.vbs echo For Each objItem In CreateObject("Shell.Application").Namespace(10).Items:WScript.Echo objItem.Name:Next
... und ja, am Datei- oder am Variablennamen "objItem" ließe sich auch noch sparen ... face-wink

Grüße
bastla
Member: rubberman
rubberman May 16, 2010 at 12:50:59 (UTC)
Goto Top
[OT]
@bastla
Möglicherweise sollte ich mir abgewöhnen am Wochenende nach der Fete und mitten in der Nacht noch Postings zu schreiben.
Das ein oder andere Promill Blut im Alkohol hat mein minimalistisches Ansinnen dann doch länger werden lassen als geplant face-wink

Grüße
rubberman
[/OT]
Member: Marwed
Marwed May 16, 2010 at 15:52:25 (UTC)
Goto Top
Danke, Leute !!!
Gruß, Marwed
face-smile