Восстановление большого количества файлов из корзины в OneDrive

508
ale93p

У меня есть аккаунт для OneDrive для бизнеса через электронную почту университета. Чуть более месяца назад я удалил некоторые файлы по ошибке, и, конечно, я просто заметил это.

Теперь я нашел все файлы в корзине OneDrive на веб-сайте, проблема в том, что они представляют собой более 6000 отдельных файлов, и мне нужны все из них. Если я пытаюсь выбрать их все (изо всех сил), это дает ошибку тайм-аута.

Поэтому я вынужден вручную восстанавливать их группами по 35-40 файлов за раз. Я сделал быстрое вычисление, и на это у меня уйдет больше 5 часов.

Существует ли более быстрое и более автоматическое решение проблемы?

2
Корзина в OneDrive или Корзина в Windows. Отредактируйте свой вопрос, чтобы уточнить, где находятся эти удаленные файлы. Ramhound 6 лет назад 0
«больше 5 часов» - это нормально. Неполная реставрация - нет. Так держать, вы на правильном пути ... (: p._phidot_ 6 лет назад 0
@Ramhound отредактировано ale93p 6 лет назад 0
@ p._phidot_ Я не думаю, что это правильный путь для информатики в 2018 году ale93p 6 лет назад 0
согласился .. ИМХО, когда я ошарашиваюсь на такие вещи .. Я могу выбрать, подождать ли .. или сразу использовать инструменты восстановления жесткого диска .. || или я могу просто согласиться не согласиться. || Извините, я не ответил на ваш вопрос. только мои 2 цента (: p._phidot_ 6 лет назад 0
@ p._phidot_ если бы было 5 часов ожидания, для меня не было бы проблем, я в порядке с пассивным ожиданием. Проблема в том, что мне нужно вручную выбрать 40 файлов, нажать кнопку восстановления, дождаться окончания, выбрать 40 файлов, нажать кнопку восстановления и так далее. ale93p 6 лет назад 0
согласился ... / (^_^) p._phidot_ 6 лет назад 0

1 ответ на вопрос

0
Eloy Roldán Paredes

Вы можете автоматизировать восстановление удаленных файлов, которые находятся в корзине OneDrive Recyble с помощью Poweshell.

Алгоритм кода будет более или менее:

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  }  } 

Соответствующий связанный код:

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

А также:

$Recyclebinarray=$ctx.Site.RecycleBin $ctx.Load($Recyclebinarray) try {$ctx.ExecuteQuery()} catch  

Вот вам полный пример:

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

@eloy Я полагаю, что это правильный путь, единственная проблема в том, что для сценария требуются учетные данные администратора 365, а я являюсь просто пользователем через учетную запись моего университета, поэтому, к сожалению, я не могу использовать это решение. ale93p 6 лет назад 0
@ ale93p Если у вас есть доступ к корзине повторного использования O365 с вашими учетными данными, я полагаю, что должен быть метод (этот или другой подобный), который позволит вам автоматизировать восстановление. Eloy Roldán Paredes 6 лет назад 0
Я получаю доступ через университетскую электронную почту, которая обычно требует внешней аутентификации. Итак, или я должен использовать что-то другое в качестве имени пользователя, или оно дает мне: `Проверка, если alessio.pagliari@unice.fr в качестве администратора сайта для https://unice-my.sharepoint.com/personal/alessio_pagliari_unice_fr 18-10-2018 09:12:06 - Не удалось проверить, является ли alessio.pagliari@unice.fr администратором сайта для https://unice-my.sharepoint.com/personal/alessio_pagliari_unice_fr с ошибкой: «Исключение вызывает« ExecuteQuery »с аргументом« 0 » (s): "Инициализатор типа для 'Microsoft.Win32.Registry' вызвал исключение.". Exception.Message'` ale93p 6 лет назад 0