Как бороться с нежелательным переносом пользовательских папок в OneDrive
Проблема случается из-за того, что в "проблемных" папках есть подпапки, которые использует OneDrive.
Небольшое пояснение. Те папки, что не получается переместить - синхронизированы с OneDrive. И их "принудительное" перемещение может нарушить синхронизацию, в результате чего могут быть как замена данных, так и их потеря.
Например, перемещение личных папок в облако может подаваться в качестве резервного копирования под соусом защиты от шифровальщиков.
1. В OneDrive создаются папки Desktop, Documents и Pictures. Названия зависят от локализации, поэтому при русском языке интерфейса будут папки Рабочий стол, Документы и Изображения.
2. В созданные папки перемещаются файлы из одноименных папок в корне профиля.
3. В разделе реестра HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\ для этих папок меняются пути с корня профиля на OneDrive.
В результате внешне ничего не меняется, разве что на значки файлов накладывается оверлей со статусом синхронизации.
В скобках замечу, что не исключено создание еще одного комплекта папок на другом языке. Например, в облаке OneDrive уже создан набор на русском языке, а из ОС подтягиваются английские папки. Это и/или какие-то еще факторы могут приводить к невообразимой путанице.
Как отменить перенос
Учтите, что после выключения резервного копирования файлы не возвращаются на свои исходные места.
Поэтому требуется два шага:
1. В свойствах OneDrive – Параметры – Резервное копирование – Управление резервным копированием – Остановить резервное копирование (для каждой папки). Русский интерфейс отдельно доставляет.
2. Вручную переместите файлы из папок в корне OneDrive в соответствующие папки в корне профиля. Затем опустевшие папки в OneDrive можно удалить.
В идеале прежние пути в разделе реестра User Shell Folders восстанавливаются автоматически, хотя вместо %USERPROFILE% там прописывается абсолютный путь.
Как предотвратить перенос
Способ 1 — символическая ссылка
Этот способ точно работает во всех изданиях Windows. Решение мне подсказал сам OneDrive.
Автоматический перенос папки невозможен, если в ней есть символическая ссылка!
скрипт PowerShell (скачать в ZIP),
https://www.outsidethebox.ms/blog/wp-...
который создает символическую ссылку на калькулятор и присваивает ей атрибуты Скрытый и Системный, чтобы скрыть файл с глаз долой.
Запускать скрипт нужно от имени администратора. При этом:
• Только для текущего пользователя, обладающего полными правами, можно запускать скрипт без параметров. Ссылки создаются во всех трех папках.
• Для любых пользователей, в том числе без прав администратора, запускайте скрипт с параметром -folders и перечисляйте через запятую пути к папкам, в которых хотите создать ссылки.
И ещё не лишним будет отключить OneDrive в Автозагрузке Дисперчера задач, а также отключить все задачи, связанные с OneDrive в Планировщике заданий-Библиотека планировщика и перезагрузить ПК. После перезагрузки - попробуйте повторить операцию по перемещению на другой диск.
Способ 2 — групповая политика (корпоративный OneDrive)
Этот способ работает только с OneDrive организации.
Предотвращение переноса добавляется в реестр одной командой:
reg add HKLM\SOFTWARE\Policies\Microsoft\OneDrive /v KFMBlockOptIn /t REG_DWORD /d 1 /f
Согласно описанию, это отключает предложение переместить папки в облако и блокирует функцию бэкапа в клиенте OneDrive.
Статья с разъяснениями
https://www.outsidethebox.ms/21844/
тайм коды:
0:00 - проблема
0:50 - решение
2:00 - эти папки должны переместиться в кореннь диска С\
2:17 - перемещаем папки
3:12 - скрипт чтобы таких проблем больше небыло.