[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
UserDataRelocator - перенос пользовательских данных.
Зачем делается перенос профилей?
Это идеология Windows, все на одном разделе, пользовательские данные и сама система свалены в кучу, для разбора этих данных используются библиотеки, о реальном местонахождении данных, с точки зрения мелкософт, пользователь знать не должен, мелкософт все решит за него сам.
Такой подход создает довольно серьезные проблемы - в случае краха системы, приходится разбирать эту мусорную кучу, чтобы сохранить свои данные, а это не очень приятная работа, бэкап системы становится бессмысленным.
Для решения этой проблемы можно перенести профили пользователей на другой раздел, но такой подход имеет крупный недостаток - перенос профилей всех пользователей, тем более таких, как All Users (ProgramData), да и просто самого пользователя, делают бэкап системы бессмысленным, если не делать параллельно бэкап перенесенных профилей.
К сожалению, в папке профиля такая же куча мусора, полный перенос папки профиля на другой диск перенесет так-же системные файлы, и сделает систему зависимой от перенесенного профиля, что и сделает бэкап системы бессмысленным.
Но можно не переносить полностью профиль пользователя, а переместить только каталоги с пользовательскими данными (библиотеки), так сказать, Кесарю кесарево.
В этом случае, даже при полном удалении перенесенной части профиля система останется работоспособной, систему можно бэкапить, восстанавливать, или переустанавливать, не боясь потери пользовательских данных.
UserDataRelocator - набор утилит, позволяющаю переместить пользовательские данные из профиля пользователя на другой раздел.
Пользоваться программой очень просто, отредактируйте при необходимости в блокноте файл MoveUserData.cfg, указав каталог нового профиля (по умолчанию - D:\User), закройте все запущенные приложения (а лучше перезагрузите систему) и выполните MoveUserData.cmd .
С помощью UndoMoveUserData.cmd всегда можно откатиться к начальному состоянию.
BackUpUserData.cmd - делает бэкат пользовательских данных, путь для сохранения в MoveUserData.cfg
RestoreUserData.cmd - восстаналиват данные, сохраненные с помощью BackUpUserData.cmd
Перезагрузки не требуется.
Поддержка ком. строки
MoveUserData.cmd [UserData] [NewUserData|BackUpUserData] [/UndoMoveUserData|/Backup|/Restore] [/Quiet]
Если параметры не указаны, они будут взяты из MoveUserData.cfg
Поддержки Windows XP нет, тестируется.
Графическая оболочка от NeleGal-38
Вложение


Последний раз редактировалось: nikzzzz (2019-04-20 22:39), всего редактировалось 26 раз(а)

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
SOFFON,
55518А в моем случае я еще и значения в реестре менял, указываю путь к новым папкам.
55518И при переносе, не создает не существующие.
А зачем ее создавать, если она существует, но просто лежит не в папке профиля?
А если менять пути в реестре, эта утилита вообще не нужна, это альтернативный способ смены путей.

[Цитировать]

    SOFFON
  • 2252
  • Стаж: 8 лет 10 месяцев
  • Сообщений: 85
  • Репутация:0

    [+] [-]
nikzzzz, Просто я только наткнулся на ваш скрипт aa А до этого у меня было сделано все по старинке. Создавать для того, чтобы при переносе папок, некоторые не остались за бортом так сказать. Ведь не всегда помнишь, что и куда переносил ag А так, скрипт сам поменяет пути на новые и создаст недостающие(основные) папки такие как Документы,Музыка,Изображения и так далее. Чтобы все было в одном месте, вобщем чтобы не было потом путаницы, что и где лежит.

[Цитировать]

    dimo70
  • 17296
  • Стаж: 6 лет 11 месяцев
  • Сообщений: 3777
  • Репутация:27

    [+] [-]
  • Откуда: BG
nikzzzz,
все сработало!
Были мелкие ошибки - лишние "
Изправил и добавил- сейчас все работает!
Вот примерный рабочий скрипт:
@echo off
::пользовател
set "User=User"
set "UserProfileOld=C:\Windows.old\Users\%User%"
set "opt= /e /copyall /xj /NJS /NJH /NP /NC"
:: explorer, чтобы не создавал проблем
>nul 2>&1 taskkill /im explorer.exe /f
>nul 2>&1 taskkill /im explorer.exe /f
>nul 2>&1 taskkill /im explorer.exe /f
>nul 2>&1 taskkill /im explorer.exe /f
>nul 2>&1 taskkill /im explorer.exe /f
>nul 2>&1 taskkill /im explorer.exe /f
>nul 2>&1 taskkill /im explorer.exe /f
>nul 2>&1 taskkill /im explorer.exe /f
>nul 2>&1 taskkill /im explorer.exe /f
robocopy "%UserProfileOld%\desktop" "%UserProfile%\Desktop" %opt%
robocopy "%UserProfileOld%\Documents" "%UserProfile%\Documents" %opt%
robocopy "%UserProfileOld%\Downloads" "%UserProfile%\Downloads" %opt%
robocopy "%UserProfileOld%\Favorites" "%UserProfile%\Favorites" %opt%
robocopy "%UserProfileOld%\Pictures" "%UserProfile%\Pictures" %opt%
robocopy "%UserProfileOld%\Music" "%UserProfile%\Music" %opt%
robocopy "%UserProfileOld%\Videos" "%UserProfile%\Videos" %opt%
robocopy "%UserProfileOld%\AppData\Roaming\Mozilla\Firefox\Profiles" "%UserProfile%\AppData\Roaming\Mozilla\Firefox\Profiles" %opt%
robocopy "%UserProfileOld%\AppData\Local\Google\Chrome" "%UserProfile%\AppData\Local\Google\Chrome" %opt%
robocopy "%UserProfileOld%\AppData\Roaming\AnyDesk" "%UserProfile%\AppData\Roaming\AnyDesk" %opt%
robocopy "%UserProfileOld%\AppData\Roaming\Opera Software" "%UserProfile%\AppData\Roaming\Opera Software" %opt%
::..........................................................................
start explorer.exe
Еще раз спасибо за помощь aa

Комментарий от nikzzzz


Убирайте большие куски кода под спойлер.

_________________
Подпись отключена за нарушение правил форума

[Цитировать]

    korsak7
  • 107
  • Стаж: 9 лет
  • Сообщений: 1063
  • Репутация:62

    [+] [-]
nikzzzz, всё ок
Планы для XP и лежачей оси (только бэкап) есть?

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
korsak7,
Да в принципе, она и под XP должна с небольшой правкой работать будет, но потребуются две внешние утилиты RoboCopy и Junction, хотя черт его знает, там могут неожиданные проблемы встретиться.

[Цитировать]

    korsak7
  • 107
  • Стаж: 9 лет
  • Сообщений: 1063
  • Репутация:62

    [+] [-]
nikzzzz, закинул в XP RoboCopy и Junction - скрипт ругается что не знает timeout, отрабатывает - но без результата

[Цитировать]

    NeleGal-38
  • 122
  • Стаж: 9 лет
  • Сообщений: 506
  • Репутация:38

    [+] [-]
  • Откуда: Из леса вестимо
nikzzzz, aa
В крайней версии всё заработало! Спасибо!

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
Обновил утилиту.
55531а .cfg не понимает переменные? Если допустим прописать NewUserData="D:\%USERNAME%"
Теперь понимает.
korsak7,
Посмотрю в ближайшее время, что там за проблемы в XP.

[Цитировать]

    dimo70
  • 17296
  • Стаж: 6 лет 11 месяцев
  • Сообщений: 3777
  • Репутация:27

    [+] [-]
  • Откуда: BG
nikzzzz,
подскажите пожалуйста, чтоб закинут из Windows.old профиль файерфокс возможно как то переправить комманду:
robocopy "%UserProfileOld%\AppData\Roaming\Mozilla\Firefox\Profiles" "%UserProfile%\AppData\Roaming\Mozilla\Firefox\Profiles" %opt%
так что в текущий профиль файерфокса перезалило все? bc

_________________
Подпись отключена за нарушение правил форума

[Цитировать]

    korsak7
  • 107
  • Стаж: 9 лет
  • Сообщений: 1063
  • Репутация:62

    [+] [-]
nikzzzz,
XP не знает timeout и mklink, что заметно больнее:
Windows XP: Как сделать символическую ссылку (симлинк)
Есть два способа это сделать - через консоль с использованием утилиты ln, и через утилиту Link Shell Extension с полноценным графическим интерфейсом.
Для начала нам нужно в любом случае специально скачать специальный драйвер, так как Windows XP не умеет создавать символические ссылки. Скачать его можно тут (обратите внимание, два разных архива для x86 и x64 систем). Теперь нам нужно установить драйвер,
Да гемор с разными названиями папок в рус-англ версиях не радует
То есть на чужой машине так просто батничек не запустить.
В общем смотри сам стоит ли связываться
Бэкап на трупе - актуальнее вопрос

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
korsak7,
XP не понимает символьных ссылок, однако junction ссылки поддерживаются начиная с Windows 2000, драйвер не нужен.
mklink отсутствует, но его можно заменить аналогом Junction, timeout тоже легко заменяется либо внешней утилитой, либо с помощью ping .
55552Да гемор с разными названиями папок в рус-англ версиях не радует
Тоже решаемо, в конфиге прописываем и то, и другое, не существующее будет проигнорировано.
Если есть желание, можешь сам помучиться, я подключусь.
У меня к сожалению нет возможности поставить себе XP, несовместимость с железом, а в виртуалке это не слишком удобно, да и не гарантировано.
55552Бэкап на трупе - актуальнее вопрос
Нужно только поставить задачу, но добавлять его в данную утилиту не вижу смысла, а отдельный батничек, как дополнение к ней - без проблем.


Последний раз редактировалось: nikzzzz (2018-07-23 15:34), всего редактировалось 1 раз

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
dimo70,
rd /q /s "%UserProfile%\AppData\Roaming\Mozilla"
robocopy "%UserProfileOld%\AppData\Roaming\Mozilla" "%UserProfile%\AppData\Roaming\Mozilla" %opt%

[Цитировать]

    korsak7
  • 107
  • Стаж: 9 лет
  • Сообщений: 1063
  • Репутация:62

    [+] [-]
Если есть желание, можешь сам помучиться, я подключусь.
У меня к сожалению нет возможности поставить себе XP, несовместимость с железом, а в виртуалке это не слишком удобно, да и не гарантировано.
пару дней можно помучиться. щас все утилы впилю, отрапортую

[Цитировать]

    dimo70
  • 17296
  • Стаж: 6 лет 11 месяцев
  • Сообщений: 3777
  • Репутация:27

    [+] [-]
  • Откуда: BG
nikzzzz,
Выручил! Спасибо большое!
Ну вот можно считать уже готова новая утилита для переноса User-а от Windows.old в текущий юзер ab

_________________
Подпись отключена за нарушение правил форума

[Цитировать]

    korsak7
  • 107
  • Стаж: 9 лет
  • Сообщений: 1063
  • Репутация:62

    [+] [-]
55552Бэкап на трупе - актуальнее вопрос
Нужно только поставить задачу, но добавлять его в данную утилиту не вижу смысла, а отдельный батничек, как дополнение к ней - без проблем.
однозначно отдельный.
Вводная: имеем чужой комп с софтовой смертью (и стандартным расположением юзерских папок) и шашку наголо любимый лайв
Задача: быстро сделать копии папок всех юзеров на второй раздел системного винта в папки вида user.admin, user.Вася и т.д. Чтобы после переустановки винды применить UserDataRelocator к нужной папке. Это очень кратко, без деталей.
Для упрощения можно принять, что системный диск таки виден в лайве как С:

Страница 4 из 7


Показать сообщения:    

Текущее время: 21-Ноя 17:32

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы