Win 10 – Инструмент (или скрипт PowerShell) для перемещения “известных папок” на новый диск для нескольких пользователей

Вопрос или проблема

У меня небольшая сеть. Клиентские машины, работающие на версиях Windows 10 Home или Pro, все имеют одинаковые пользовательские учетные записи.

Я ищу удобный способ переключить выбранный набор “Известных папок” (т.е. Документы, Шаблоны, Видеозаписи, Музыка и т.д.) на другой диск для всех “реальных” учетных записей пользователей.

Это возможно сделать вручную в Windows, изменив свойство “Расположение” каждой папки, но это трудоемкая задача, так как необходимо войти в систему как каждый пользователь по очереди и затем вручную перемещать все папки по одной.

Это кажется чем-то довольно стандартным, но пока я не нашел хорошего решения.

Ближайшее к этому это это обсуждение на Stackoverflow и связанный gist на GitHub. Однако этот скрипт требует 225 строк кода Powershell для достижения перемещения одной известной папки для текущего пользователя, так что процесс не более эффективен по времени, чем использование стандартного интерфейса Windows.

Наверняка должен быть более простой способ?

Расположение Shell Folders хранится по адресу

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders

(и по адресу

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Backup)

Shell Folders in Registry

Можно создать файл .reg, чтобы изменить пакет за раз, хотя этот скрипт нужно будет запустить каждый пользователем.

Для одного пользователя измените вручную расположение каждой из Shell Folders, затем экспортируйте ключ

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders

в файл .reg. Импортируйте этот файл для каждого пользователя.

Примечание.

Это зависит от путей, установленных переменными среды, например, %USERPROFILE%\Documents для Моих документов, что является обычным случаем. Однако, если кто-то изменил значение, чтобы использовать абсолютный путь, а не %USERPROFILE%, это не сработает.

Также обратите внимание, что любая ошибка может сделать Windows непригодной для использования. Создайте полное изображение диска перед внесением этих изменений.

Ответ или решение

Решение для перемещения известных папок на новый диск для нескольких пользователей Windows 10

Введение

Если у вас есть небольшая сеть, состоящая из машин с Windows 10 Home или Pro, и вы хотите переместить известные папки (такие как Документы, Музыка, Изображения и т. д.) на другой диск для всех пользователей, существует метод, который позволит вам избежать рутинной работы, связанной с ручным изменением местоположения для каждого пользователя. В данном ответе мы рассмотрим, как можно эффективно решить эту задачу с помощью PowerShell и реестра Windows.

Основные шаги

  1. Изменение местоположения папок через реестр

    Изменение пути хранения известных папок возможно через изменения в реестре. Ниже описан процесс:

    • Пользовательские папки, известные как "Shell Folders", хранятся в:

      HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
    • Вы можете изменить местоположение папок для текущего профиля пользователя, а затем экспортировать данные в файл .reg для использования другими пользователями.

  2. Создание PowerShell-скрипта для автоматизации

    Для автоматизации процесса и изменения местоположения известный папок для нескольких пользователей мы можем использовать PowerShell-скрипт. Этот скрипт будет отображать реестр для каждого пользователя и изменять значения папок по умолчанию.

    Пример скрипта:

    $newDrivePath = "D:\KnownFolders"
    
    $knownFolders = @(
       "Desktop",
       "Documents",
       "Downloads",
       "Music",
       "Pictures",
       "Videos"
    )
    
    foreach ($user in Get-WmiObject Win32_UserProfile | Where-Object { $_.Special -eq $false }) {
       $userHive = "Registry::HKEY_USERS\$($user.SID)\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"
       foreach ($folder in $knownFolders) {
           $newFolderPath = "$newDrivePath\$folder"
           Set-ItemProperty -Path $userHive -Name $folder -Value $newFolderPath
       }
    }

    Важно! Перед выполнением скрипта рекомендуется создать резервную копию реестра.

  3. Проверка и тестирование изменений

    После выполнения скрипта, войдите в систему под учетной записью каждого пользователя и убедитесь, что изменения применены корректно. Проверьте, что папки были перемещены и главные библиотеки обновлены соответственно.

  4. Использование файлов .reg

    После настройки и тестирования, можно создать .reg файл, который будет импортирован в реестр для каждой учетной записи.

    Пример файла .reg для изменения местоположения:

    Windows Registry Editor Version 5.00
    
    [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]
    "Documents"="D:\\KnownFolders\\Documents"
    "Music"="D:\\KnownFolders\\Music"
    ...

    Помните, что этот файл должен быть запущен от имени каждого пользователя.

Заключение

Перемещение известных папок на новый диск в Windows 10 для нескольких пользователей может быть сложным процессом, но благодаря описанным методам с использованием PowerShell и редактирования реестра, вы можете существенно упростить его. Всегда помните о резервном копировании данных и тестировании изменений для безопасного функционирования системы. Это позволит вам значительно сократить время и усилия, затрачиваемые на ручные операции, и сделает ваш рабочий процесс более эффективным.

Оцените материал
Добавить комментарий

Капча загружается...