Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Windows Server 2008/2008 R2 (http://forum.oszone.net/forumdisplay.php?f=97)
-   -   Названия папок в профиле пользователя после перемещения (http://forum.oszone.net/showthread.php?t=325866)

Lipser2008 12-04-2017 13:24 2728606

Названия папок в профиле пользователя после перемещения
 
Всем привет
Ребят, помогите разрулить, что то у меня коллапс случился вроде бы в элементарной теме.
Перенес профили пользователей на другой диск, поправил пути в реестре и прочие необходимые действия. Все хорошо, все работает, пользователи логинятся.

Проблема в том что изменились все называния папок в профилях:
Рабочий стол стал 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 2728702

Lipser2008, проверьте в свойствах desktop.ini наличие атрибутов "Скрытый" и "Системный".

mwz 12-04-2017 22:45 2728785

Цитата:

Цитата Lipser2008
Удаление файла 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 2728811

Цитата:

Цитата mwz
Причём Petya V4sechkin знает не хуже меня, что на свойства и внешний вид папок влияет атрибут именно папки

Когда-то знал. Потом забыл. Это печально.

mwz 13-04-2017 00:31 2728820

Цитата:

Цитата Petya V4sechkin
Когда-то знал. Потом забыл. »

Знакомо... Иногда участвуешь в теме, дают ссылку на пяти-шестилетней давности обсуждение с решением — и... "Да неужели я это знал?"...

Lipser2008 13-04-2017 10:58 2728902

Вложений: 2
Спасибо за ответы, но к сожалению не помогло.

Что было сделано:
1. На всякий случай заново скопировал правильные desktop.ini из профиля который не был перемещен в перемещенный профиль
2. Выставил Far-ом атрибут "Только для чтения" на папки Desktop и Documents (attrib.png)
3. Перелогинился пользователем (testuser.png)

Есть еще идеи ?

mwz 13-04-2017 16:15 2728985

Lipser2008, есть смутные подозрения (почему я всегда категорически возражал против переноса профилей с ручной правкой реестра: на худой конец это решается созданием связи Junction на новое место папки пользователя, с сохранением всей текущей логики папки, и в новом расположении остаётся только прописать Владельца и права иерархии папок). Вы копировали папки пользователя в новое место с учётом того, что часть из них (в т.ч. внутри папки Documents) не является реальными папками, а является связями? Связи на первом уровне папки профиля отмечены цепочками на скриншоте (связи эти проявлены зрительно установленной утилитой HardlinkShellExtention), глубже же в папках таких связей также не одна и не две.

Запустите cmd.exe из-под данного пользователя и приведите результат выполнения в нём команды set user (будут выведены все переменные, начинающиеся на это слово; строку USERDOMAIN можете не приводить). По результатам будет ещё парочка просьб.

Lipser2008 13-04-2017 16:23 2728989

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
)

mwz 13-04-2017 17:30 2729005

Цитата:

Цитата Lipser2008
насчет симлинков »

Там не симлинки, а точки монтирования: те самые связи 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 2729013

Lipser2008, обратите внимание: на вашем скриншоте не папки, а Библиотеки и Избранное (там могли остаться ссылки на старые папки).

Lipser2008 14-04-2017 14:47 2729245

Вложений: 1
Цитата:

Цитата mwz
Покажите теперь результат последовательного выполнения в 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\Мои документы

Цитата:

Цитата Petya V4sechkin
Lipser2008, обратите внимание: на вашем скриншоте не папки, а Библиотеки и Избранное (там могли остаться ссылки на старые папки). »

неудачный скриншот сделал, овт так лучше наверное

mwz 14-04-2017 16:38 2729280

Цитата:

Цитата 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

Цитата:

Цитата Lipser2008
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 существование этой папки-связи: её там может не оказаться, и тогда у вас будет ещё один источник некоторых непонятных проблем).

mwz 14-04-2017 16:54 2729288

PS
"И далее со всеми остановками": это не единственное скользкое место.
Там ещё и "AppData" с двойником-связью "Application Data" есть... Это вообще в кошмар может перейти.

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

Причём при поиске в Яндексе по поводу такого переноса тоже выплывает масса бреда — хотя попадаются и здравые описания, например — http://svictor.ru/kak-perenesti-prof...j-v-windows-7/ (глубоко не вникал — но по крайней мере по введению и начальным шагам, использующим штатные методы, можно рассчитывать на то, что и следующие шаги описаны корректно).

Lipser2008 17-04-2017 10:45 2730037

Вложений: 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 профилей, перенос должен был произойти прозрачно для пользователей.

mwz 17-04-2017 14:02 2730098

Цитата:

Цитата Lipser2008
но другого способа перенести профили не было »

Давайте посмотрим: установите LinkShellExtention (при установке лучше выбрать английский язык, чтобы не путаться в не всегда корректных переводах терминов; перезагрузка не потребуется), создайте 131-го пользователя (скажем, Test1), зайдите им чтобы создался каталог профиля .....\Test1, перетащите этот каталог в нужное место другого диска правой кнопкой мышки, отпустите правую кнопку и выберите в выпавшем меню пункт "Drop here" -> "Smart copy".

Затем под Администратором переименуйте исходный каталог Test1 как -Test1 (поставив в начале дефис: при этом переименованный каталог останется зрительно лежать зрительно на месте непереименованного), а скопированный на другой диск каталог снова втащите сюда правой кнопкой мышки, выбрав пункт "Drop here" -> "Junction". В реестре ничего не трогать. *

Папке, скопированной на другой диск, дать те же права, что у исходной папки. Такие же права дать новой связи Test1.

Сколько заняло времени с начала и до окончания переноса? Как ведёт себя пользователь Test1 и как ведут себя названия папок и Избранного?

Завершить можно удалением пользователя и оставшихся от него, в т.ч. скопированных, папок.

* PS
Вариант: в реестре указать новое, которое на другом диске, положение папки.

Lipser2008 17-04-2017 15:40 2730120

Да, не могу спорить, гораздо более правильное и элегантное решение. Жалею, что не знал о нем раньше и выбрал пусть с физическим переносом папки

Lipser2008 17-04-2017 16:45 2730135

Есть еще идеи как восстановить правильные локализованные названия папок ?


Время: 20:18.

Время: 20:18.
© OSzone.net 2001-