
Сначала немного предыстории.
Я имею дело с большим количеством поддержки конечных пользователей на рабочем столе, связанных с Onedrive. Иногда, если клиент Onedrive полностью ломает себя и свою библиотеку, нам приходится перестраивать. Обычно это включает удаление старого местоположения библиотеки и повторную синхронизацию. Довольно часто, если клиент не вышел из системы или не отключился чисто, эти библиотеки просто не позволяют удалить их с помощью File Explorer из-за чего-то похожего на эту KB:https://learn.microsoft.com/en-us/sharepoint/troubleshoot/sync/delete-onedrive-synced-file-error. К сожалению для меня и нашей команды техников, CHKDSK часто полностью не может исправить эту проблему, или в других случаях мы не можем использовать CHKDSK. Это означает, что у нас есть библиотека в подвешенном состоянии, и мы обычно прибегаем к ее переименованию и скрытию, и позволяем Onedrive создать новую рабочую библиотеку.
Вот в чем загадка. Даже в ситуациях, когда File Explorer дал сбой и рекурсивный вызов метода Delete() с использованием PowerShell дал сбой, меню профиля пользователя в системном меню все равно может полностью удалить папку профиля пользователя, содержащую одну из этих сломанных библиотек Onedrive.
Меню, о котором я говорю:https://i.stack.imgur.com/3jTW2.png
Я хотел бы узнать, есть ли способ узнать, какой волшебный системный вызов или утилита используется Windows для принудительного удаления этих папок библиотеки Onedrive, чтобы я мог сделать это сам. Это достаточно распространенная проблема для нас, поэтому я потратил значительное время, пытаясь выяснить, как это происходит. Если кто-то знает об этом больше, я был бы рад услышать вашу мудрость.
Спасибо.
решение1
Первое, что я бы попробовал, это запустить Process Monitor.https://learn.microsoft.com/en-us/sysinternals/downloads/procmonв системе во время его удаления, а затем просматривая выходные данные: что именно запускалось, к каким путям осуществлялся доступ и т. д.
Обратите внимание, если вы не знакомы с ProcMon, он выдает МНОГО данных, поэтому я бы рекомендовал убедиться, что вы настроили его на сохранение вывода в файл, а НЕ в память, например, перейдите в Файл > Резервные файлы и задайте имя файла. Также вам нужно будет остановить и очистить захват, прежде чем вы начнете, начать захват непосредственно перед тем, как вы начнете удаление, и остановить его снова сразу после этого. В противном случае у вас останется МНОГО ненужной информации. Затем вам останется только отфильтровать те фрагменты информации, которые, как вы знаете, не являются важными, например, фоновые процессы, обращающиеся к файловой системе, службы, подключающиеся к ресурсам и т. д., пока вы не сократите объем данных до разумного размера, где вы сможете просмотреть их, чтобы увидеть, что именно произошло в системе.