Как использовать PowerShell для удаления непустой папки в OneDrive?

Описания

Не удается удалить непустую папку в каталоге OneDrive

Шаг для воспроизведения

  1. Запустить PowerShell в каталоге OneDrive

PS C:UsersMyUserNameOneDrive>

  1. Попробуйте использовать командлет Remove-Item, чтобы удалить непустую папку в этом каталоге, например: папку. Test

PS C:UsersMyUserNameOneDrive> Remove-Item .test

Ожидаемый результат

Без параметра -Recurse PowerShell должен возвращать подтверждающее сообщение, например

Confirm The item at C:UsersMyUserNameOneDrivetest has children and the Recurse parameter was not specified. If you continue, all children will be removed with the item. Are you sure you want to continue? [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is «Y»):

Фактический результат

PowerShell возвращает сообщение об ошибке

Remove-Item: Cannot remove item C:UsersMyUserNameOneDrivetest: The directory is not empty. : ‘C:UsersMyUserNameOneDrivetest’

Примечание

  1. PowerShell и администратор: PowerShell дает тот же результат;
  2. Если я выхожу из процесса OneDrive и создаю новую непустую папку в каталоге OneDrive, PowerShell может удалить ее как обычно (см. Примечание 4., поскольку несинхронизированные папки не имеют атрибута ReparsePoint);
  3. CMD может успешно удалить папку, что означает, что я могу использовать следующую команду в PowerShell, чтобы удалить папку. Но я хочу достичь своей цели только с помощью командлета PowerShell;

cmd.exe /C «rd /s test»

  1. Командлет Get-ChildItem показывает, что режим обычных папок (не синхронизируемых OneDrive) — «d» (каталог), а режим синхронизируемых папок — «l» (точка повторной обработки). Является ли это причиной того, что я не могу удалить папку из каталога OneDrive в обычном режиме?

Информация о версии

PS Версия : 7.1.3

ОС : Microsoft Windows 10.0.19042

Версия OneDrive : 21.052.0314.0001 (Office 365 A1)

Обновлять

Я пытаюсь удалить тестовую папку в PowerShell 5, но тоже не могу.

Сообщение об ошибке от PowerShell 5.1:

PS C:UsersMyUserNameOneDrive> Remove-Item .test -Force -Recurse Remove-Item : Access to the cloud file is denied. At line:1 char:1 + rm .test -Force -Recurse + ~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Remove-Item], Win32Exception + FullyQualifiedErrorId : System.ComponentModel.Win32Exception,Microsoft.PowerShell.Commands.RemoveItemCommand

Совершенно очевидно, что объекты файлов и папок обрабатываются Remove-Item по-разному. Если я вспомню сценарий, который я написал, чтобы сделать что-то подобное, мне нужно было сначала удалить файлы, прежде чем удалять папки.   —  person OriBeta    schedule 10.04.2021

Что произойдет, если вы попробуете с -Force?   —  person OriBeta    schedule 10.04.2021

Попробуйте -Recurse. Вам следует посмотреть на документы.   —  person OriBeta    schedule 11.04.2021

@Vivere Я попробовал, но ничего не вышло. И обычно, даже если без -Recurse, PowerShell должен возвращать подтверждающее сообщение (точно так же, как ожидаемый результат в вопросе) вместо сообщения об ошибке.   —  person OriBeta    schedule 11.04.2021

@SantiagoSquarzon Я попробовал, но ничего не вышло. На самом деле в тестовой папке нет скрытых файлов или папок, поэтому я думаю, что параметр -Force не имеет значения.   —  person OriBeta    schedule 11.04.2021

@Scepticalist Я знаю, как удалить chinditems перед удалением папки. Я просто хочу знать, почему несинхронизированная непустая папка может быть легко удалена Remove-Item -Recurse, а папки, синхронизированные OneDrive, нет?   —  person OriBeta    schedule 11.04.2021

Источник: ledsshop.ru

Стиль жизни - Здоровье!