Показать полную графическую версию : Названия папок в профиле пользователя после перемещения
Lipser2008
12-04-2017, 13:24
Всем привет
Ребят, помогите разрулить, что то у меня коллапс случился вроде бы в элементарной теме.
Перенес профили пользователей на другой диск, поправил пути в реестре и прочие необходимые действия. Все хорошо, все работает, пользователи логинятся.
Проблема в том что изменились все называния папок в профилях:
Рабочий стол стал Desktop
Загрузки - Downloads
Мои документы - Documents и т.д.
Захожу в эти папки, везде присутствует desktop.ini, содержание вроде правильное. Например для папки Мои документы:
[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21770
IconResource=%SystemRoot%\system32\imageres.dll,-112
IconFile=%SystemRoot%\system32\shell32.dll
IconIndex=-235
Удаление файла desktop.ini никак не влияет, пробовал принудительно прописать "LocalizedResourceName=Рабочий стол" - тоже не помогает.
Как вернуть правильные локализованные названия ??
Petya V4sechkin
12-04-2017, 17:45
Lipser2008, проверьте в свойствах desktop.ini наличие атрибутов "Скрытый" и "Системный".
Удаление файла desktop.ini никак не влияет »
Удаление влияет как раз на то, чтобы "Рабочий стол" вы стали видеть как "Desktop", а не как "Рабочий стол", и так во всех этих папках.
Поскольку вы сейчас видите истинные имена папок, которые можно зрительно менять в Проводнике как раз с помощью Desktop.ini, но при выполнении одного условия.
Так что если вы эти файлы успели удалить — возьмите их из соответствующих папок нормального компьютера с той же версией Windows и разложите там, где они лежали до удалений.
А затем присвойте каждой из таких папок атрибут "Только для чтения": такой атрибут папок используется именно для изменения их внешнего вида и свойств на вид и свойства, прописанные в desktop.ini и никак не влияет на возможность или невозможность записи в такую папку.
В Проводнике этого сделать нельзя: изменение этого атрибута в Свойствах папки в Проводнике изменяет данный атрибут только у файлов внутри папки, о чём и написано в подсказке Свойств. Поэтому менять атрибут папок надо или в стороннем Диспетчере фалов (FAR, Total Commander, Free Commander и т.д.: это самое простое, быстрое и наглядное), или воспользоваться командной строкой, запустив cmd.exe и выполнив в нём команды:
attrib +R Диск:\Путь_к_профилю_конкретного_пользователя\Desktopзатем attrib +R Диск:\Путь_к_профилю_конкретного_пользователя\Documents и т.д. Упростить ввод команд можно используя после отработки первой команды в окне cmd курсорные клавиши "Вверх" и "Вниз" и заменяя для следующей команды только имя конечной папки.
Ну а затем завершите сеанс, снова войдите в учётную запись и проверьте результат для пользователя, которому вы меняли атрибуты папок.
Причём Petya V4sechkin знает не хуже меня, что на свойства и внешний вид папок влияет атрибут именно папки, а не файла desktop.ini — но видать что-то его отвлекло: ведь атрибуты +H+S у desktop.ini влияют только на видимость этого файла в Проводнике (поэтому лучше их всё же установить).
Petya V4sechkin
12-04-2017, 23:30
Причём Petya V4sechkin знает не хуже меня, что на свойства и внешний вид папок влияет атрибут именно папки
Когда-то знал. Потом забыл. Это печально.
Когда-то знал. Потом забыл. »
Знакомо... Иногда участвуешь в теме, дают ссылку на пяти-шестилетней давности обсуждение с решением — и... "Да неужели я это знал?"...
Lipser2008
13-04-2017, 10:58
Спасибо за ответы, но к сожалению не помогло.
Что было сделано:
1. На всякий случай заново скопировал правильные desktop.ini из профиля который не был перемещен в перемещенный профиль
2. Выставил Far-ом атрибут "Только для чтения" на папки Desktop и Documents (attrib.png)
3. Перелогинился пользователем (testuser.png)
Есть еще идеи ?
Lipser2008, есть смутные подозрения (почему я всегда категорически возражал против переноса профилей с ручной правкой реестра: на худой конец это решается созданием связи Junction на новое место папки пользователя, с сохранением всей текущей логики папки, и в новом расположении остаётся только прописать Владельца и права иерархии папок). Вы копировали папки пользователя в новое место с учётом того, что часть из них (в т.ч. внутри папки Documents) не является реальными папками, а является связями? Связи на первом уровне папки профиля отмечены цепочками на скриншоте (http://mwz-ru.homeserver.com/tests/userprofilefolder1.gif) (связи эти проявлены зрительно установленной утилитой HardlinkShellExtention), глубже же в папках таких связей также не одна и не две.
Запустите cmd.exe из-под данного пользователя и приведите результат выполнения в нём команды set user (будут выведены все переменные, начинающиеся на это слово; строку USERDOMAIN можете не приводить). По результатам будет ещё парочка просьб.
Lipser2008
13-04-2017, 16:23
F:\Users\testuser>set user
USERDNSDOMAIN=.....
USERDOMAIN=....
USERNAME=testuser
USERPROFILE=F:\Users\testuser
а ведь вы правы насчет симлинков... профили переносил с помощью самописного батника:
echo Копируем файлы профиля...
xcopy c:\users\%1 F:\Users\%1 /B /E /H /O /I /exclude:exclude.txt
echo Переименовываем старый профиль...
rename "c:\Users\%1" "_%1"
echo Создаем симлинк для Outlook...
md "C:\Users\%1\AppData\Local\Microsoft\"
mklink /d "C:\Users\%1\AppData\Local\Microsoft\Outlook" "F:\Users\%1\AppData\Local\Microsoft\Outlook" > nul
echo Вычищаем новый профиль....
cd F:\Users\%1
rmdir /S /Q "F:\Users\%1\Application Data"
rmdir /S /Q "F:\Users\%1\Cookies"
rmdir /S /Q "F:\Users\%1\Local Settings"
rmdir /S /Q "F:\Users\%1\NetHood"
rmdir /S /Q "F:\Users\%1\PrintHood"
rmdir /S /Q "F:\Users\%1\Recent"
rmdir /S /Q "F:\Users\%1\SendTo"
rmdir /S /Q "F:\Users\%1\Главное меню"
rmdir /S /Q "F:\Users\%1\Мои документы"
rmdir /S /Q "F:\Users\%1\Шаблоны"
echo Создаем новые симлинки ...
mklink /D "F:\Users\%1\Application Data" "F:\Users\%1\AppData\Roaming" > nul
mklink /D "F:\Users\%1\Cookies" "F:\Users\%1\AppData\Roaming\Microsoft\Windows\Cookies" > nul
mklink /D "F:\Users\%1\Local Settings" "F:\Users\%1\AppData\Local" > nul
mklink /D "F:\Users\%1\NetHood" "F:\Users\%1\AppData\Roaming\Microsoft\Windows\Network Shortcuts" > nul
mklink /D "F:\Users\%1\PrintHood" "F:\Users\%1\AppData\Roaming\Microsoft\Windows\Printer Shortcuts" > nul
mklink /D "F:\Users\%1\Recent" "F:\Users\%1\AppData\Roaming\Microsoft\Windows\Recent" > nul
mklink /D "F:\Users\%1\SendTo" "F:\Users\%1\AppData\Roaming\Microsoft\Windows\SendTo" > nul
mklink /D "F:\Users\%1\Главное меню" "F:\Users\%1\AppData\Roaming\Microsoft\Windows\Start Menu" > nul
mklink /D "F:\Users\%1\Мои документы" "F:\Users\%1\Documents" > nul
mklink /D "F:\Users\%1\Шаблоны" "F:\Users\%1\AppData\Roaming\Microsoft\Windows\Templates" > nul
echo Выставляем аттрибуты симлинкам...
attrib +H +S /L "F:\Users\%1\Application Data"
attrib +H +S /L "F:\Users\%1\Cookies"
attrib +H +S /L "F:\Users\%1\Local Settings"
attrib +H +S /L "F:\Users\%1\NetHood"
attrib +H +S /L "F:\Users\%1\PrintHood"
attrib +H +S /L "F:\Users\%1\Recent"
attrib +H +S /L "F:\Users\%1\SendTo"
attrib +H +S /L "F:\Users\%1\Главное меню"
attrib +H +S /L "F:\Users\%1\Мои документы"
attrib +H +S /L "F:\Users\%1\Шаблоны"
echo Правим путь к профилю в реестре...
SetLocal EnableExtensions
set root=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
set param=ProfileImagePath
set value_old=C:\Users\%1
set value_new=F:\Users\%1
For /F "delims=" %%a in ('reg query "%root%" /f "%value_old%" /s ^| find /i "%root%"') do (
echo Key updated: %%a
reg add "%%a" /v "%param%" /t REG_EXPAND_SZ /d %value_new% /f
)
echo Меняем путь к списку баз 1С...
if exist F:\Users\%1\AppData\Roaming\1C\1cv8\location.cfg do (
echo location=F:\Users\%1\AppData\Roaming\1C/1Cv82>F:\Users\%1\AppData\Roaming\1C\1cv8\location.cfg
)
if exist F:\Users\%1\AppData\Local\1C\1cv8\location.cfg do (
echo location=F:\Users\%1\AppData\Local\1C/1Cv82>F:\Users\%1\AppData\Local\1C\1cv8\location.cfg
)
насчет симлинков »
Там не симлинки, а точки монтирования: те самые связи Junction. Симлинки же что папок, что файлов проявляются зелёными стрелками-оверлеями, а хардлинки (ну к папкам они отношения не имеют, только к файлам) — красными стрелками. Эта утилита помогает также копировать мышкой на другой диск каталоги целиком, с учётом вложенных связей: режим "Smart Copy".
И не исключаю, что проблема связана с раздвоением личности некоторых папок: каждая из которых до копирования были одной, хоть и с несколькими именами, но после копирования превратилась в группу несвязанных папок (с чем вы при любых условиях ещё получите удовольствие по поиску причин непонятных проблем). Именно с этим столкнулись любители FAT16/FAT32, пытавшиеся не мытьём, так катаньем установить на неё Висту вместо NTFS: копированием папок с установки на NTFS на диск с FAT; у меня же уже тогда стояла упомянутая утилита, и после того, как я посмотрел структуру папок Висты, мне было и смешно и грустно наблюдать за такими обречёнными на неудачу попытками.
Покажите теперь результат последовательного выполнения в cmd команд:
attrib F:\Users\testuser\Desktop
attrib F:\Users\testuser\Documents
attrib "F:\Users\testuser\Мои документы"(последняя строка с кавычками, поскольку содержит пробел, да ещё и русское имя). При правильном копировании папка "Мои документы" являлась бы связью на Documents. Но вы её кажись и не копировали, так что ответ в этой строке должен быть типа "Файл не найден".
Petya V4sechkin
13-04-2017, 18:21
Lipser2008, обратите внимание: на вашем скриншоте (http://forum.oszone.net/attachment.php?attachmentid=144949&d=1492070203) не папки, а Библиотеки (http://www.oszone.net/10431) и Избранное (там могли остаться ссылки на старые папки).
Lipser2008
14-04-2017, 14:47
Покажите теперь результат последовательного выполнения в cmd команд: »
F:\Users\testuser>attrib F:\Users\testuser\Desktop
A F:\Users\testuser\Desktop
F:\Users\testuser>attrib F:\Users\testuser\Documents
SHR F:\Users\testuser\Documents
F:\Users\testuser>attrib "F:\Users\testuser\Мои документы"
SHR F:\Users\testuser\Мои документы
Lipser2008, обратите внимание: на вашем скриншоте не папки, а Библиотеки и Избранное (там могли остаться ссылки на старые папки). »
неудачный скриншот сделал, овт так лучше наверное
A F:\Users\testuser\Desktop »
Атрибут R не установлен, и почему-то (правда, это непринципиально — но "неакуратненько как-то") установлен атрибут A.
Выполните в этом же окне:
attrib -A +R F:\Users\testuser\Desktop
чтобы привести атрибуты в порядок, и проверьте результат уже известной командой "attrib F:\Users\testuser\Desktop"
Должно получиться R F:\Users\testuser\Desktop
SHR F:\Users\testuser\Documents »
Установлены атрибуты S и H (System и Hidden), т.е. сама папка не будет видна пользователю если не разрешёны показ скрытых файлов и защищённых файлов системы. Выполните attrib -H -S F:\Users\testuser\Documents
чтобы привести атрибуты в порядок, и проверьте результат уже известной командой "attrib F:\Users\testuser\Documents".
Должно получиться R F:\Users\testuser\Documents
После этого повторите команду attrib "F:\Users\testuser\Мои документы", причём не меняя перед этим атрибуты папки.
Если система помогла вам, сделав эту папку связью на "F:\Users\testuser\Documents", или просто использовала записи в реестре не глядя в саму папку, то вы увидите уже изменённый атрибут основной папки, т.е. R F:\Users\testuser\Мои документы; если же это у вас независимая папка — то результат будет без изменений, т.е. SHR F:\Users\testuser\Мои документы, и вам надо будет удалять эту папку и создавать её как связь Junction на папку F:\Users\testuser\Documents. Вот уже у этой папки-связи должны быть атрибуты S и H при отсутствием атрибутов A и R (менять её атрибуты необходимо не в окне cmd, а в FAR! Причём даже в первом случае надо проверить в FAR существование этой папки-связи: её там может не оказаться, и тогда у вас будет ещё один источник некоторых непонятных проблем).
PS
"И далее со всеми остановками": это не единственное скользкое место.
Там ещё и "AppData" с двойником-связью "Application Data" есть... Это вообще в кошмар может перейти.
Вот что значит — перенести профиль на другой диск доморощенными методами, вместо использования известных корректных методов.
Причём при поиске в Яндексе (https://yandex.ru/search/?text=%D0%BA%D0%B0%D0%BA%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%B5%D1%81%D1%82%D0%B8%20%D0%BF%D1%80%D0% BE%D1%84%D0%B8%D0%BB%D1%8C%20%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8 F%20%D0%BD%D0%B0%20%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B9%20%D0%B4%D0%B8%D1%81%D0%BA) по поводу такого переноса тоже выплывает масса бреда — хотя попадаются и здравые описания, например — http://svictor.ru/kak-perenesti-profili-polzovatelej-v-windows-7/ (глубоко не вникал — но по крайней мере по введению и начальным шагам, использующим штатные методы, можно рассчитывать на то, что и следующие шаги описаны корректно).
Lipser2008
17-04-2017, 10:45
Мои документы это точно связь (см. скриншот)
выполнил команды, вот результат:
F:\Users\testuser>attrib -A +R F:\Users\testuser\Desktop
F:\Users\testuser>attrib F:\Users\testuser\Desktop
R F:\Users\testuser\Desktop
F:\Users\testuser>attrib -H -S F:\Users\testuser\Documents
F:\Users\testuser>attrib "F:\Users\testuser\Мои документы"
R F:\Users\testuser\Мои документы
Но ярлыки пока без изменений.
P.s. При всем уважении, но другого способа перенести профили не было. На сервере 130 профилей, перенос должен был произойти прозрачно для пользователей.
но другого способа перенести профили не было »
Давайте посмотрим: установите LinkShellExtention (http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html) (при установке лучше выбрать английский язык, чтобы не путаться в не всегда корректных переводах терминов; перезагрузка не потребуется), создайте 131-го пользователя (скажем, Test1), зайдите им чтобы создался каталог профиля .....\Test1, перетащите этот каталог в нужное место другого диска правой кнопкой мышки, отпустите правую кнопку и выберите в выпавшем меню пункт "Drop here" -> "Smart copy".
Затем под Администратором переименуйте исходный каталог Test1 как -Test1 (поставив в начале дефис: при этом переименованный каталог останется зрительно лежать зрительно на месте непереименованного), а скопированный на другой диск каталог снова втащите сюда правой кнопкой мышки, выбрав пункт "Drop here" -> "Junction". В реестре ничего не трогать. *
Папке, скопированной на другой диск, дать те же права, что у исходной папки. Такие же права дать новой связи Test1.
Сколько заняло времени с начала и до окончания переноса? Как ведёт себя пользователь Test1 и как ведут себя названия папок и Избранного?
Завершить можно удалением пользователя и оставшихся от него, в т.ч. скопированных, папок.
* PS
Вариант: в реестре указать новое, которое на другом диске, положение папки.
Lipser2008
17-04-2017, 15:40
Да, не могу спорить, гораздо более правильное и элегантное решение. Жалею, что не знал о нем раньше и выбрал пусть с физическим переносом папки
Lipser2008
17-04-2017, 16:45
Есть еще идеи как восстановить правильные локализованные названия папок ?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.