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-ID: 142882

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

Ausgedruckt am: 22.11.2024 um 13:11 Uhr

77559
77559 15.05.2010 um 23:40:52 Uhr
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
rubberman
rubberman 16.05.2010 um 01:39:38 Uhr
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
Marwed
Marwed 16.05.2010 um 12:10:52 Uhr
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=
bastla
bastla 16.05.2010 um 13:18:32 Uhr
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
rubberman
rubberman 16.05.2010 um 14:50:59 Uhr
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]
Marwed
Marwed 16.05.2010 um 17:52:25 Uhr
Goto Top
Danke, Leute !!!
Gruß, Marwed
face-smile