Перенос установленного программного обеспечения с системного раздела C: на другой логический или физический диск (например, D:) требуется при дефиците свободного места без выполнения полной переустановки. Прямое перемещение папки программы средствами Проводника блокирует ее запуск из-за жесткой привязки абсолютных путей в реестре Windows, службах системы и профилях пользователей. Проблема решается использованием штатных функций ОС Windows 10/11 для UWP-приложений, созданием символических ссылок и соединений NTFS (Junction Point) или коррекцией реестра и конфигурационных файлов.
Экспресс-проверка и подготовка системы
- Проверка файловой системы: Убедитесь, что целевой диск форматирован в
NTFS. Файловые системыFAT32иexFATне поддерживают точки соединения (Junction Points) и права доступа ACL. Проверка выполнится командой Win + R →cmd→fsutil fsinfo volumeinfo D:. - Остановка процессов и служб: Завершите процесс программы в «Диспетчере задач» (Ctrl + Shift + Esc) и остановите связанные службы через Win + R →
services.msc. - Проверка прав доступа: Запустите командную строку
cmd.exeилиPowerShellот имени Администратора для корректной обработки системных вызовов API. - Оценка объема диска: Убедитесь в наличии достаточного свободного места на целевом накопителе с помощью утилиты
dir D:или системного монитора.
Основные пошаговые методы переноса
Метод 1: Встроенный механизм Windows 10/11 (для UWP и приложений Microsoft Store)
- Откройте параметры системы комбинацией клавиш Win + I.
- Перейдите по пути: Приложения → Установленные приложения (в Windows 10: Приложения → Приложения и возможности).
- Найдите в списке нужную программу, нажмите на иконку с тремя точками сбоку и выберите пункт Переместить (Move).
- В выпадающем списке выберите целевой накопитель (например,
диск (D:)) и подтвердите операцию нажатием кнопки Переместить.
Метод 2: Создание символических ссылок NTFS (Junction Points) через CLI
- Откройте командную строку от имени Администратора: нажмите Win + R, введите
cmd, нажмите Ctrl + Shift + Enter. - Скопируйте папку программы со всеми правами доступа и атрибутами на новый диск, выполнив команду:
robocopy "C:Program FilesTargetApp" "D:Program FilesTargetApp" /E /COPYALL /XJ - Убедитесь, что файлы успешно скопировались, после чего переименуйте исходную папку на диске
C::ren "C:Program FilesTargetApp" "TargetApp_old" - Создайте соединение NTFS (Junction), связывающее старый путь с новым местоположением:
mklink /J "C:Program FilesTargetApp" "D:Program FilesTargetApp" - Проверьте работоспособность программы. При успешном запуске удалите резервную папку:
rmdir /S /Q "C:Program FilesTargetApp_old"
Метод 3: Полный перенос с правкой реестра и системных служб
- Переместите файлы программы из
C:Program FilesTargetAppвD:Program FilesTargetAppутилитойrobocopy. - Нажмите Win + R, введите
regeditи нажмите Enter для открытия Редактора реестра. - Перейдите к ветке реестра:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstall. - Найдите подраздел программы и измените строковые параметры
InstallLocation,DisplayIconиUninstallString, заменив букву дискаC:наD:. - Проверьте наличие 64-битной ветки при необходимости:
HKEY_LOCAL_MACHINESOFTWAREWOW6432NodeMicrosoftWindowsCurrentVersionUninstallи внесите аналогичные правки. - Если программа запускается как служба Windows, обновите путь к бинарному файлу через консоль:
sc config "TargetAppService" binPath= "D:Program FilesTargetAppservice.exe"
Сводная таблица параметров и способов связывания
| Тип связи / Метод | Синтаксис команды / Инструмент | Поддержка междискового переноса | Влияние на реестр | Область применения |
|---|---|---|---|---|
Junction Point (/J) |
mklink /J "Исходный_путь" "Целевой_путь" |
Да | Не требуется правка | Папки на NTFS (Win32 классические программы) |
Symbolic Link (/D) |
mklink /D "Исходный_путь" "Целевой_путь" |
Да (требует прав Admin) | Не требуется правка | Файлы и папки, сетевые пути (SMB) |
Hard Link (/H) |
mklink /H "Исходный_файл" "Целевой_файл" |
Нет (только в рамках одного тома) | Не требуется правка | Отдельные файлы внутри одного раздела |
Утилита Robocopy |
robocopy /E /COPYALL /XJ |
Да | Не влияет (копирует данные) | Точный перенос структуры и прав ACL |
Штатный перенос UWP |
Параметры → Приложения |
Да | Автоматическая коррекция | Приложения из Microsoft Store / UWP |
Нестандартные проблемы и их решение
Критическое предупреждение: Запрещается удалять системные точки соединения в
C:UsersилиC:WindowsSystem32без предварительного создания точки восстановления системы. Это может привести к сбою загрузки ОС.
Ошибка «Access is Denied» (Запрещено в доступе) при создании mklink
Возникает при нехватке прав Администратора или при блокировке папки активным процессом/антивирусом.
- Перезагрузите ОС в «Безопасном режиме» через Win + R →
msconfig→ вкладка Загрузка → чекбокс Безопасный режим (Safe boot). - Снимите блокировку с папки, сбросив владельца объекта в консоли:
takeown /F "C:Program FilesTargetApp" /R /Aicacls "C:Program FilesTargetApp" /grant Администраторы:F /T
Файлы конфигурации с жестко прописанными путями (Hardcoded Paths)
Приложения могут хранить пользовательские профили и настройки в %AppData% или %LocalAppData% в файлах форматов .json, .xml, .ini, содержащих абсолютные пути вида C:Program Files....
- Откройте текстовый редактор Notepad++ с поддержкой поиска по нескольким файлам.
- Нажмите комбинацию клавиш Ctrl + Shift + F.
- В поле Найти введите старый путь:
C:Program FilesTargetApp. - В поле Заменить на введите новый путь:
D:Program FilesTargetApp. - В поле Папка укажите путь к профилю программы:
%AppData%TargetAppи нажмите Заменить в файлах.
Исправление зарегистрированных COM-компонентов и DLL
Если после переноса программа выдает ошибки о незарегистрированных библиотеках .dll или .ocx, перерегистрируйте их вручную через утилиту regsvr32:
- Запустите командную строку от имени Администратора.
- Выполните перерегистрацию библиотеки по новому адресу:
regsvr32 /i "D:Program FilesTargetAppcomponentslibrary.dll" - Для массовой регистрации всех динамических библиотек в перенесенном каталоге выполните пакетный цикл в
cmd.exe:for %i in ("D:\Program Files\TargetApp\*.dll") do regsvr32 /s "%i"
Перенос драйверов уровня ядра и служб с прямым путем к образу
Если переносимое программное обеспечение устанавливает низкоуровневые фильтры или службы драйверов (файлы .sys), создающие сбой при старте, выполните коррекцию реестра в ветке управления системным ядром:
- Нажмите Win + R, введите
regeditи откройте ветку:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services. - Найдите подраздел службы целевого приложения (например,
TargetAppFilter). - Дважды кликните по параметру
ImagePath(тип REG_EXPAND_SZ) и замените исходный путьC:\Program Files\TargetApp\driver.sysна целевойD:\Program Files\TargetApp\driver.sysили\??\D:\Program Files\TargetApp\driver.sys. - Принудительно перезапустите службу через консоль управления:
net stop TargetAppFilter && net start TargetAppFilter
Устранение циклических ссылок при резервном копировании (AppLoop)
Точки соединения NTFS (Junction Points) могут вызывать рекурсивное зацикливание антивирусных сканеров и встроенных служб резервного копирования Windows (VSS / Shadow Copy):
- Установите атрибут системного репарсинга, чтобы исключить папку из индексации поисковых служб:
attrib +s +h "C:\Program Files\TargetApp" - Запустите утилиту управления файловой системой и заблокируйте наследование повторного сканирования:
fsutil reparsepoint query "C:\Program Files\TargetApp" - При использовании специализированных утилит резервного копирования (Acronis, Veeam) всегда добавляйте флаг пропуска символических ссылок
--exclude-reparse-pointsили параметр исключения/XJв скриптах автоматизации, чтобы предотвратить дублирование физического объема накопителя.
