Всем тем, кто в своей инфраструктуре использует замечательную технологию перемещаемых профилей Windows, и тем, кто неизбежно столкнется с проблемами совместимости между перемещаемыми профилями Windows 7 и Windows 8 посвящается…
Технология перемещаемых профилей Windows довольно широко используется в корпоративной среде. Концепция перемещаемых профилей замечательная — за каким бы компьютером или терминальным севером не работал пользователь – ему всегда можно предоставить рабочее окружение с его собственными документами, настройками программ, рабочим окружением (расположение иконок, параметры меню…) и другими элементами пользовательской среды. При любом изменении в профиле пользователя они синхронизируются с сетевой папкой и доступны из любой точки корпоративной сети.
Однако у Microsoft есть и ряд проблем с перемещаемыми профилями – главными из которых являются их несовместимость в различных версиях Windows и возможность только односторонней миграции, что особенно актуально при начале массовой миграции корпоративного сектора на Windows 8.
Согласно статье KB — Unpredictable behavior if you migrate a roaming user profile from Windows 8 to Windows 7 (Непредсказуемость поведения при переносе перемещаемого профиля пользователя из Windows 8 для Windows 7) — http://support.microsoft.com/kb/2748329:
Проблема в общем-то, не нова. Так, при миграции с Windows XP на Windows 7, для перемещаемого профиля Windows 7 автоматически создавался новый перемещаемый профиль с суффиксом .v2. Таким образом перемещаемые профили различных версий Windows хранились в различных папках, и система при входе пользователя автоматически загружала профиль из соответствующей папки.
Какие, собственно, на данный момент существуют версии перемещаемых профилей:
- V1 – профили Windows NT 4.0, Windows 2000, Windows XP
- V2 – профили Windows Vista, Windows 7, Windows Server 2008, Windows Server 2008 R2
- V3 – профили Windows 8, Windows 8.1, Windows Server 2012, Windows Server 2012 R2
В Windows 8 Microsoft решила зачем-то запутать всю логическую систему версий перемещаемых профилей. Windows 8, как мы уже указывали, использует профиль нового (v3) формата, однако обе ОС и Windows 7 и Windows 8 реально хранят профили в каталогах с суффиксах .v2 (!!!). Это означает, что для корректной работы придется изолировать профили Windows 8 таким образом, чтобы их не видели машины с Windows 7.
Естественно, самым очевидным решением было бы использование на всех компьютерах организации одинаковую версию Windows, но, как мы все прекрасно понимаем, в реальных условиях бизнеса это нереализуемо.
Другой, более близкий к реалиям, вариант — задействовать на каждой из ОС специальную переменную среды, которую подставлять в путь к перемещаемым профилям. Таким образом, авторизуясь на той или иной версии ОС, пользователь получает в свое распоряжение профиль именно для данной ОС (естественно, профили в данном случае являются независимыми и о переносе настройке между ними речь не идет). Разберем этот «костыль» поподробнее…
- Для хранения профилей создадим на файловом сервере новую общую папку, например \\Server\ProfileShare.
- Внутри сетевой папки создадим два каталога: Win7 и Win8
- В Active Directory необходимо создать две политики, которые прилинкуем к OU с компьютерами пользователей: первая из которых будет применяться к ПК с Windows 7 (Win7 GPO), вторая – на компьютеры с Windows 8 (Win8 GPO). В качестве параметров фильтрации применения групповых политик к каждой из них применим соответствующие WMI-фильтры:Windows 7:
SELECT version FROM Win32_OperatingSystem WHERE Version LIKE "6.1%" and ProductType = "1"
Windows 8:
SELECT version FROM Win32_OperatingSystem WHERE Version LIKE "6.2%" and ProductType = "1"
- В каждой из групповых политик с помощью GPP (Group Policy Preferences) создадим собственную переменную среды — OSVerДля Win7GPO: перейдите в раздел Expand Computer Configuration -> Preferences -> Windows Settings -> Environment создадим новую переменную окружения:
Для Win8GPO, соответственно:
- В качестве пути к профилю пользователя укажите: \\Server\ProfileShare\%OSVer%\%username%\
- Попробуйте под тестовым пользователем с настроенным перемещаемым профилем войти на машины с Windows 7 и Windows 8. Откройте командную строку с правами администратора и проверьте состояние переменной окружения OSVer:set o
- Удостоверьтесь, что на файловом сервер в соответствующих каталогах создались профили для Windows 7 и 8 (каталог testuser.V2)
А я на днях проверил этот факт. Вроде как пользователь, чей домик уже существовал под Windows 7, зашел на 8-ю систему, после чего насоздавал там файлов, поставил новую тему, вышел, благополучно залогинился на компе с Windows 7 и разве что только обои из темы Windows 8 не применились. А все остальное среплицировалось.
Настраивали именно перемещаемые профили а не перенаправляемые папки?
Согласно гайду на технете по настройке перемещемых профилей _http://technet.microsoft.com/en-us/library/jj649079.aspx чтобы профилям Windows 8/Windows 8.1 присваивался коррекнтый суффикс (V3), нужно в ветке HKEY_LOCAL_MACHINE\System\CurrentControlset\Services\ProfSvc\Parameters создать ключ dword UseProfilePathExtensionVersion=1. В этом случае профили разных версий виндовс будут храниться в своих индивидуальных каталогах. Всего делов-то…
Да, именно перемещаемые. Настроена шара на КД, и там директории пользователей с суффиксом V2. Потестил одного юзера, заходит и туда и сюда.
Написано все вроде как красиво, только вот не работает. У меня создается папка %OSVer% вместо Win7 или Win8. Хотя в переменных среды она есть.
Писал статью довольно давно.. Проверьте в командной строке, что %OSVer% возвращает версию ОС согласно настройкам GPP.
Перезагружались?
Простите за клевету, была нужна перезагрузка машины, видимо переменные окружения система полноценно начинает видеть только с перезагрузкой. А я делал gpupdate и релогин.
А есть что-то для синхронизации определённых подпапок в профилях V2, V5, V6? Просто даже у Win10 сейчас версии профилей могут отличаться в зависимости от сборки. Так вот при обновлении сборки 1705 до 1809 создаётся новая папка пользователя с суффиксом V6. И нужные внутренности V5 надо ручками копировать в V6, чтобы подцепился почтовый профиль, настройки 1С и т.д. Можно как-то настроить автоматическое копирование, чтобы при создании версии, допустим, .V6 в неё копировались из предыдущей «appdata\Roaming\1C\*.*» и другие по выбору?
Автоматических утилит или готовых скриптов для миграции данных между разными версиями профилей Windows не знаю. Скорее всего нужно свой скрипт писать. В принципе ничего сложного нет.
Можно прямо на рабочий стол пользователю положить скрипт для запуска переноса данных из предудущего профиля.