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

    nikzzzz
  • 215
  • Стаж: 9 лет 3 месяца
  • Сообщений: 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 лет 3 месяца
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
dimo70,
55465Только такой вапрос: как проще можно сделать, чтоб перемещало профиль из Windows.old в текущий юзер?
В принципе делается простым копированием, можно написать батник.
Но полностью переносить профиль крайне не рекомендую, можно сломать систему, в шапке написано, почему.
В принципе, можно временно поправить MoveUserData.cfg, заменив в нем пути , например
UserData="C:\Windows.old\Users\Вася Пупкин\Desktop","%NewUserData%\Desktop"
Сделать бэкап, восстановить MoveUserData.cfg, и выполнить RestoreUserData под пользователем Вася Пупкин , но в общем утилита для этого не предназначена.

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

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

    [+] [-]
nikzzzz, а с этим глюком как быть? И почему он пытается создать папку назначения на С? O_O
(Раньше эта папка хотя бы копировалась на D без связи и файлы можно было восстановить. А сейчас файлы уходят в никуда :( )

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

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

    [+] [-]
korsak7, aa
55477И почему он пытается создать папку назначения на С?
Он пытается создать ссылку, а не папку, но почему-то не может.
Скинь мне в личку лог, посмотрю.

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

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

    [+] [-]
Он пытается создать ссылку, а не папку, но почему-то не может.
Ну я бы так не сказал ah
D:\2k10.iso\_programs\UserDataRelocator>robocopy "d:\User\Desktop" "C:\Users\Admin\Desktop" /e /copyall /xj /move /NJS /NJH /NP /NC /R:2 /W:10 /NFL /NDL
2018/07/22 08:46:51 ОШИБКА 5 (0x00000005) Создание папки назначения C:\Users\Admin\Desktop\
Отказано в доступе.

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

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

    [+] [-]
korsak7,
Да, я посмотрел лог.
Утилита почему-то не может полностью перенести данные, далее пытается восстановить перенесенную часть обратно и, почему-то не может.
Попробуй поставить паузу
:MoveUserData
if not exist "%~dpnx1" goto :eof
call :CheckLink "%~dpnx1" && goto :eof
call :GetAttrib "%~dpnx1"
robocopy "%~dpnx1" "%~dpnx2" %rbcopt%
pause
if not exist "%~dpnx1" goto _3
::Если не удалось, восстанавливаем
robocopy "%~dpnx2" "%~dpnx1" %rbcopt%
rd /s /q "%~dpnx2"
echo.Error move %~dpnx1
goto :eof
Посмотри, существует ли C:\Users\Admin\Desktop\ , может он просто не успел удалиться при перемещении, проверка выполняется слишком рано.

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

    Ander_73
  • 15549
  • Стаж: 7 лет 2 месяца
  • Сообщений: 3608
  • Репутация:127

    [+] [-]
55484 может он просто не успел удалиться при перемещении, проверка выполняется слишком рано.
Жуткий геморрой Vista-систем. Управление возвращается ДО завершения операции.
Я делаю так:
:del_dir
>nul 2>&1 rd /q/s %1
if exist %1 goto del_dir
exit /b

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

    dimo70
  • 17296
  • Стаж: 6 лет 4 месяца
  • Сообщений: 3990
  • Репутация:26

    [+] [-]
  • Откуда: BG
добавил в новую версию UserData=%APPDATA%\Google\Chrome\User Data","%NewUserData%APPDATA%\Google\Chrome\User Data" в конце cfg и сейчас не работаeт для хрома. ac bc

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

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

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

    [+] [-]
nikzzzz,
UserDataRelocator_2018_07_22a.7z
вставил - успевает удалиться, все переносится норм
заменил паузу на таймер:
1 сек - не успевает
2 сек - успевает удалиться, все переносится норм
5 сек - успевает удалиться, все переносится норм
UserDataRelocator_2018_07_22b.7z
глюк не пропал
к тому же появились глюки с перезапуском explorer

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

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

    [+] [-]
  • Откуда: Из леса вестимо
nikzzzz, aa
Например я поправил конфиг, и перенёс данные
[Config]
NewUserData="D:\User"
BackUpUserData="D:\User\UserBackUp"
Mode=j
LogOpt=/NFL /NDL
[UserData]
UserData="%UserProfile%\Saved Games","%NewUserData%\Saved Games"
UserData="%UserProfile%\Downloads","%NewUserData%\Downloads"
Для отмены перемещения файлом UndoMoveUserData.cmd, данные в конфиге править не нужно?
Папки в пользователе ( C:\User\....) после перемещения содержат перемещённые файлы, так и должно быть?
PS Спрашивают пользователи, не знаю как правильно объяснить ))

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

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

    [+] [-]
NeleGal-38, aa
Конфиг один для всех операций, править не надо.
55500Папки в пользователе ( C:\User\....) после перемещения содержат перемещённые файлы, так и должно быть?
При перемещении папка перемещается, а на ее старом месте создается ссылка на перемещенную папку.
Если зайти в C:\User\.... , там будут видны папки, с ними можно работать, но реально эти папки находятся да другом диске.


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

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

    dimo70
  • 17296
  • Стаж: 6 лет 4 месяца
  • Сообщений: 3990
  • Репутация:26

    [+] [-]
  • Откуда: BG
nikzzzz, Добавил
UserData="%LOCALAPPDATA%\Google\Chrome\User Data","%NewUserData%\Chrome"
и сейчас все работает нормально. ab aa
И все таки возможно сделать скрипт переноса из Windows.old? Я не смогу справиться. Слишком трудно.
Думаю ето будет полезно многим IT

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

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

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

    [+] [-]
dimo70,
55503И все таки возможно сделать скрипт переноса из Windows.old?
@echo off
::Имя пользователя
set "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%
::..........................................................................
start explorer.exe
Скрипт должен быть в OEM кодировке, иначе будут проблемы с кириллицей.


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

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

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

    [+] [-]
Explorer не перезапускается на win 10 когда скрипт выполняется из места которое будет переносится. Например у меня до этого были перенесены папки профиля на диск D:\. То есть я переносил в корень диска папки Рабочий стол и так далее(не сам профиль). отмена изменений работает(с диска D:\User все переносится обратно), только что проверил на той же 10 х64. папку со скриптом кинул в корень диска C:\ собственно оттуда и запускал.
nikzzzz, У меня такой вопрос, скрипт не изменяет значения реестра? Например "Reg Add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "My Video" /t REG_SZ /d "D:\Videos" /f" он просто создает ярлыки перенесенных папок в папке с профилем которые ведут к новому месту прописки я правильно понимаю?

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

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

    [+] [-]
55494к тому же появились глюки с перезапуском explorer
А не мог-бы попробовать перед перезапуском explorer тоже поставить задержку секунд на пять?
UserDataRelocator_2018_07_22b.7z глючит
вернулся на UserDataRelocator_2018_07_22a.7z - поствил таймеры
robocopy "%~dpnx1" "%~dpnx2" %rbcopt%
ping -n 2 127.0.0.1
if not exist "%~dpnx1" goto _3
::Если не удалось, восстанавливаем
::Перезапускаем Explorer
ping -n 5 127.0.0.1
start explorer.exe
все работает отлично (раз 10 перезапускал), и к тому же исчез 2-й глюк - с папкой Documents
папки User и UserBackUp идентичны
это на виртуалке под админом в win7*64

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

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

    [+] [-]
Плохо, что скрипт переносит только те папки которые существуют в профиле. И при переносе, не создает не существующие. То есть, как в моем случае, у меня некоторые папки были уже перенесены и соответственно их не будет в папке с профилем. Можно бы было сделать так, чтобы основные папки, такие как рабочий стол, документы, музыка и так далее, при переносе их на другой диск, создавались в любом случае, независимо от того были они в папке с профилем или нет. Просто, если переносить их по новому, часть папок которая уже была перенесена, так и останется не тронутой. А в моем случае я еще и значения в реестре менял, указываю путь к новым папкам. =(

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


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

Текущее время: 25-Апр 10:15

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


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