Recycle.bin auf Windows Core Server - wie wiederherstellen?
Hallo Kollegen!
Hat schon einmal jemand auf einem Windows Coreserver Dateien aus dem Recycler (c:\$Recycle.bin) wiederhergestellt? Ich sehe diese Dateien zwar, kann sie auch in andere Ordner kopieren, aber die Namen sind alle "kodiert", also z.B. RMKY4.xyz
Das ist auch auf Clientsystemen so, nebenbei bemerkt, nur kann man hier natürlich den Explorer nutzen, der sieht die alten Namen noch.
Hat schon einmal jemand auf einem Windows Coreserver Dateien aus dem Recycler (c:\$Recycle.bin) wiederhergestellt? Ich sehe diese Dateien zwar, kann sie auch in andere Ordner kopieren, aber die Namen sind alle "kodiert", also z.B. RMKY4.xyz
Das ist auch auf Clientsystemen so, nebenbei bemerkt, nur kann man hier natürlich den Explorer nutzen, der sieht die alten Namen noch.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 205811
Url: https://administrator.de/forum/recycle-bin-auf-windows-core-server-wie-wiederherstellen-205811.html
Ausgedruckt am: 07.04.2025 um 16:04 Uhr
6 Kommentare
Neuester Kommentar
Hi DWW,
also an die Namen wie sie der Explorer darstellt kommst du nur programmatisch, d.h. z.B. mit einem VBS-Script wie diesem:
Das ließe sich dann um eine Kopierfunktion erweitern die die Files alle an einen Ort kopiert.
Wenn du nur die Dateien eines bestimmten Benutzers auf dem Core-Servers wiederherstellen möchtest musst du den Pfad in Zeile 3 anpassen, und zwar hat jeder User einen eigenen Papierkorb innerhalb von
Denke das Dir das aber als Denkanstoss ausreicht...
--edit hier gibt es auch noch ein Projekt dazu : http://www.codeproject.com/Articles/2783/How-to-programmatically-use-th ...
wiederherstellen der gelöschten Dateien(auf Laufwerk C:\) eines bestimmten Users in einen Restore-Ordner:
Zeile 1 und 2 noch anpassen
Grüße Uwe
also an die Namen wie sie der Explorer darstellt kommst du nur programmatisch, d.h. z.B. mit einem VBS-Script wie diesem:
Set shell = CreateObject("Shell.Application")
Set fso = WScript.CreateObject("Scripting.Filesystemobject")
parseFolders fso.GetFolder("C:\$Recycle.Bin"), True
Function parseFolders(strFldr,boolRecursion)
Set objRecycleBinItems = shell.NameSpace(strFldr.Path).Items
For Each obj In objRecycleBinItems
'Name der gelöschten Datei ausgeben
WScript.Echo obj.Name
Next
If boolRecursion Then
For Each subFolder in strFldr.SubFolders
parseFolders subFolder, True
Next
End If
End Function
Das ließe sich dann um eine Kopierfunktion erweitern die die Files alle an einen Ort kopiert.
Wenn du nur die Dateien eines bestimmten Benutzers auf dem Core-Servers wiederherstellen möchtest musst du den Pfad in Zeile 3 anpassen, und zwar hat jeder User einen eigenen Papierkorb innerhalb von
C:\$Recycle.Bin
der seiner SID entspricht. Obiges Script geht im Moment alle Papierkörbe durch.Denke das Dir das aber als Denkanstoss ausreicht...
--edit hier gibt es auch noch ein Projekt dazu : http://www.codeproject.com/Articles/2783/How-to-programmatically-use-th ...
wiederherstellen der gelöschten Dateien(auf Laufwerk C:\) eines bestimmten Users in einen Restore-Ordner:
Zeile 1 und 2 noch anpassen
USERNAME = "Domain\User"
RESTOREFOLDER = "C:\Temp\Restore"
Set shell = CreateObject("Shell.Application")
Set WshShell = WScript.CreateObject("Wscript.Shell")
Set fso = WScript.CreateObject("Scripting.Filesystemobject")
SID = getSid(USERNAME)
restoreDeletedItems fso.GetFolder("C:\$Recycle.Bin\" & SID)
Function restoreDeletedItems(strFldr)
Set objRecycleBinItems = shell.NameSpace(strFldr.Path).Items
shell.NameSpace(RESTOREFOLDER).CopyHere shell.NameSpace(strFldr.Path).Items
End Function
Private Function getSid(strUsername)
strComputer = "."
arrUser = Split(strUsername,"\")
If UBound(arrUser) > 0 Then
strDomain = arrUser(0)
strUser = arrUser(1)
Else
strUser = strUsername
strDomain = wshshell.ExpandEnvironmentStrings("%computername%")
End If
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_UserAccount Where Name = '" & strUser & "' and Domain = '" & strDomain & "'")
For Each objItem in colItems
getSID = objItem.SID
Next
End Function
Grüße Uwe