![]() |
Названия папок в профиле пользователя после перемещения
Всем привет
Ребят, помогите разрулить, что то у меня коллапс случился вроде бы в элементарной теме. Перенес профили пользователей на другой диск, поправил пути в реестре и прочие необходимые действия. Все хорошо, все работает, пользователи логинятся. Проблема в том что изменились все называния папок в профилях: Рабочий стол стал 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=Рабочий стол" - тоже не помогает. Как вернуть правильные локализованные названия ?? |
Lipser2008, проверьте в свойствах desktop.ini наличие атрибутов "Скрытый" и "Системный".
|
Цитата:
Поскольку вы сейчас видите истинные имена папок, которые можно зрительно менять в Проводнике как раз с помощью Desktop.ini, но при выполнении одного условия. Так что если вы эти файлы успели удалить — возьмите их из соответствующих папок нормального компьютера с той же версией Windows и разложите там, где они лежали до удалений. А затем присвойте каждой из таких папок атрибут "Только для чтения": такой атрибут папок используется именно для изменения их внешнего вида и свойств на вид и свойства, прописанные в desktop.ini и никак не влияет на возможность или невозможность записи в такую папку. В Проводнике этого сделать нельзя: изменение этого атрибута в Свойствах папки в Проводнике изменяет данный атрибут только у файлов внутри папки, о чём и написано в подсказке Свойств. Поэтому менять атрибут папок надо или в стороннем Диспетчере фалов (FAR, Total Commander, Free Commander и т.д.: это самое простое, быстрое и наглядное), или воспользоваться командной строкой, запустив cmd.exe и выполнив в нём команды: Код:
attrib +R Диск:\Путь_к_профилю_конкретного_пользователя\Desktop Код:
attrib +R Диск:\Путь_к_профилю_конкретного_пользователя\Documents Ну а затем завершите сеанс, снова войдите в учётную запись и проверьте результат для пользователя, которому вы меняли атрибуты папок. Причём Petya V4sechkin знает не хуже меня, что на свойства и внешний вид папок влияет атрибут именно папки, а не файла desktop.ini — но видать что-то его отвлекло: ведь атрибуты +H+S у desktop.ini влияют только на видимость этого файла в Проводнике (поэтому лучше их всё же установить). |
Цитата:
|
Цитата:
|
Вложений: 2
Спасибо за ответы, но к сожалению не помогло.
Что было сделано: 1. На всякий случай заново скопировал правильные desktop.ini из профиля который не был перемещен в перемещенный профиль 2. Выставил Far-ом атрибут "Только для чтения" на папки Desktop и Documents (attrib.png) 3. Перелогинился пользователем (testuser.png) Есть еще идеи ? |
Lipser2008, есть смутные подозрения (почему я всегда категорически возражал против переноса профилей с ручной правкой реестра: на худой конец это решается созданием связи Junction на новое место папки пользователя, с сохранением всей текущей логики папки, и в новом расположении остаётся только прописать Владельца и права иерархии папок). Вы копировали папки пользователя в новое место с учётом того, что часть из них (в т.ч. внутри папки Documents) не является реальными папками, а является связями? Связи на первом уровне папки профиля отмечены цепочками на скриншоте (связи эти проявлены зрительно установленной утилитой HardlinkShellExtention), глубже же в папках таких связей также не одна и не две.
Запустите cmd.exe из-под данного пользователя и приведите результат выполнения в нём команды set user (будут выведены все переменные, начинающиеся на это слово; строку USERDOMAIN можете не приводить). По результатам будет ещё парочка просьб. |
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 ) |
Цитата:
И не исключаю, что проблема связана с раздвоением личности некоторых папок: каждая из которых до копирования были одной, хоть и с несколькими именами, но после копирования превратилась в группу несвязанных папок (с чем вы при любых условиях ещё получите удовольствие по поиску причин непонятных проблем). Именно с этим столкнулись любители FAT16/FAT32, пытавшиеся не мытьём, так катаньем установить на неё Висту вместо NTFS: копированием папок с установки на NTFS на диск с FAT; у меня же уже тогда стояла упомянутая утилита, и после того, как я посмотрел структуру папок Висты, мне было и смешно и грустно наблюдать за такими обречёнными на неудачу попытками. Покажите теперь результат последовательного выполнения в cmd команд: Код:
attrib F:\Users\testuser\Desktop |
Lipser2008, обратите внимание: на вашем скриншоте не папки, а Библиотеки и Избранное (там могли остаться ссылки на старые папки).
|
Вложений: 1
Цитата:
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\Мои документы Цитата:
|
Цитата:
Выполните в этом же окне: Код:
attrib -A +R F:\Users\testuser\Desktop Должно получиться R F:\Users\testuser\Desktop Цитата:
Код:
attrib -H -S 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" есть... Это вообще в кошмар может перейти. Вот что значит — перенести профиль на другой диск доморощенными методами, вместо использования известных корректных методов. Причём при поиске в Яндексе по поводу такого переноса тоже выплывает масса бреда — хотя попадаются и здравые описания, например — http://svictor.ru/kak-perenesti-prof...j-v-windows-7/ (глубоко не вникал — но по крайней мере по введению и начальным шагам, использующим штатные методы, можно рассчитывать на то, что и следующие шаги описаны корректно). |
Вложений: 1
Мои документы это точно связь (см. скриншот)
выполнил команды, вот результат: 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 профилей, перенос должен был произойти прозрачно для пользователей. |
Цитата:
Затем под Администратором переименуйте исходный каталог Test1 как -Test1 (поставив в начале дефис: при этом переименованный каталог останется зрительно лежать зрительно на месте непереименованного), а скопированный на другой диск каталог снова втащите сюда правой кнопкой мышки, выбрав пункт "Drop here" -> "Junction". В реестре ничего не трогать. * Папке, скопированной на другой диск, дать те же права, что у исходной папки. Такие же права дать новой связи Test1. Сколько заняло времени с начала и до окончания переноса? Как ведёт себя пользователь Test1 и как ведут себя названия папок и Избранного? Завершить можно удалением пользователя и оставшихся от него, в т.ч. скопированных, папок. * PS Вариант: в реестре указать новое, которое на другом диске, положение папки. |
Да, не могу спорить, гораздо более правильное и элегантное решение. Жалею, что не знал о нем раньше и выбрал пусть с физическим переносом папки
|
Есть еще идеи как восстановить правильные локализованные названия папок ?
|
Время: 20:18. |
Время: 20:18.
© OSzone.net 2001-