Stellen Sie eine große Anzahl von Dateien aus dem Papierkorb in OneDrive wieder her

2

Ich habe ein Konto für OneDrive for Business über meine E-Mail-Adresse an der Universität. Vor etwas mehr als einem Monat habe ich versehentlich einige Dateien gelöscht, und natürlich habe ich es gerade bemerkt.

Ich habe jetzt alle Dateien im OneDrive-Papierkorb auf der Website gefunden. Das Problem ist, dass es sich um 6000+ einzelne Dateien handelt und ich alle benötige. Wenn ich versuche, sie alle auszuwählen (Probleme), wird ein Timeout-Fehler ausgegeben.

Daher muss ich sie manuell in Gruppen von 35-40 Dateien gleichzeitig wiederherstellen. Ich habe eine schnelle Berechnung durchgeführt und es wird auf diese Weise mehr als 5 Stunden dauern.

Gibt es eine schnellere und automatischere Lösung des Problems?

ale93p
quelle
Papierkorb in OneDrive oder Papierkorb in Windows. Bearbeiten Sie Ihre Frage, um festzustellen, wo sich diese gelöschten Dateien befinden.
Ramhound
"mehr als 5 Stunden" ist in Ordnung .. Unvollständige Restaurierung ist nicht. Weiter so, da bist du auf dem richtigen Weg ... (:
p._phidot_ 16.10.18
@ Ramhound bearbeitet
Ale93p
@ p._phidot_ Ich glaube nicht, dass es der richtige Weg für die Informatik im Jahr 2018 ist
ale93p
vereinbart .. IMHO, wenn ich auf solche Dinge stumpf .. Ich kann wählen, ob zu warten .. oder HDD-Wiederherstellungstools sofort verwenden .. || oder ich kann nur zustimmen, nicht zuzustimmen. || Entschuldigung, ich habe deine Frage nicht beantwortet. nur meine 2 cent. (:
p._phidot_

Antworten:

0

Sie können die Wiederherstellung gelöschter Dateien im OneDrive-Papierkorb mit Poweshell automatisieren.

Der Code-Algorithmus würde mehr oder weniger:

foreach ($fileitem in $FilteredRecycleBinArray) 
    { 
    $filename = $fileItem.Title 
    $fileitem.Restore() 
    try { 
        $ctx.ExecuteQuery() 
        logwrite -Logstring "Item $filename restored successfully" -type info 
        } 
    catch  
        { 
        logwrite -Logstring "Item $filename failed to restore with error: '$_.Exception.Message'" -type error 
        } 
    }

Relevanter verwandter Code:

$ctx = New-Object Microsoft.SharePoint.Client.ClientContext($OnedriveUrl)

Und:

$Recyclebinarray=$ctx.Site.RecycleBin
$ctx.Load($Recyclebinarray)
try     {$ctx.ExecuteQuery()}
catch   {logwrite -Logstring "Failed Collecting all deleted Items from $OnedriveURL with error: '$_.Exception.Message'" -type error
        break}

Hier haben Sie ein vollständiges Beispiel:

https://gallery.technet.microsoft.com/office/Restore-deleted-files-in-a268fdcd

Eloy Roldán Paredes
quelle
@eloy Ich nehme an, das ist der richtige Weg, das einzige Problem ist, dass das Skript den Berechtigungsnachweis des 365-Administrators erfordert und ich bin nur ein Benutzer über den Account meiner Universität, daher kann ich diese Lösung leider nicht verwenden.
Ale93p
@ ale93p Wenn Sie mit Ihren Anmeldeinformationen Zugriff auf den O365-Papierkorb haben, sollte es vermutlich eine Methode (diese oder eine ähnliche) geben, mit der Sie die Wiederherstellung automatisieren können.
Eloy Roldán Paredes
Ich greife über die E-Mail-Adresse der Universität zu, für die normalerweise eine externe Authentifizierung erforderlich ist. Also, oder ich sollte etwas anderes als Benutzername verwenden, oder es gibt mir: Checking if [email protected] as site admin for https://unice-my.sharepoint.com/personal/alessio_pagliari_unice_fr 18-10-2018 09:12:06 - Failed to check if [email protected] as site admin for https://unice-my.sharepoint.com/personal/alessio_pagliari_unice_fr with error: 'Exception calling "ExecuteQuery" with "0" argument(s): "The type initializer for 'Microsoft.Win32.Registry' threw an exception.".Exception.Message'
Ale93p