Задача: Перенести профили и папки сотрудников с одного сервера на другой

У меня на работе что-то стал тупить сервер (физический S5000VSA, 2 sockets Intel Xeon CPU E6405 2.00Ghz, 4Gb RAM) на котором располагаются профили и перемещаемые папки пользователей. Вот просто так система подвисала и ничего с ней делать нельзя было, но проходило какое-то время и как ни в чем не бывало. Но вот у пользователей в связи с использованием перемещаемых профилей и папок "Мои документы", "Рабочий стол", "Application Data" происходило повисание программ, с которыми они работают, отваливается рабочий стол и ничего сделать нельзя, проходит какое-то время и все возвращается к работе как ни в чем не бывало. Перво-наперво был проверено состояние RAID контроллера через утилиту MegaRAID Storage Manager. RAID массив в оптимальном состоянии, ошибок нет. Удалены оставшиеся от предыдущего системного администратора зачем-то развернутые роли, не относящиеся к работе. Такое ощущение, что он учился на боевом окружении. Нагрузки по памяти, по сети нет. Предварительно с него были вынесены LUN где располагались "Почтовые архивы пользователей", LUN с дистрибутивами, LUN где располагался "Консультант+". Но все это ни к чему не привело, по данным анализа за сетевыми интерфейсами через Zabbix, мы сетевую пропускную способность линка 1Gbps даже и близко не использовали.

Поэтому я принял решение, что нужно на новом сервере развернуть VM и перенести на него: Профили

Шаг №1: Разворачиваю виртуальную машину на ESXi 6.7.0 и именую ее как srv-shares02 (текущий srv-shares01), ось использую Windows Server 2012 R2 Std.

Шаг №2: Создаю каталог на srv-shares02 где будут размещаться профили с соответствующими правами доступа:

Ниже какие права делаю я:

C:\Windows\system32>net share Profiles=D:\Profiles /GRANT:"Authenticated Users",FULL

C:\Windows\system32>icacls D:\Profiles /inheritance:d

C:\Windows\system32>icacls D:\Profiles /remove "Users" /T

C:\Windows\system32>icacls D:\Profiles /grant "CREATOR OWNER":(OI)(CI)(IO)(F)

C:\Windows\system32>icacls D:\Profiles /grant "NT AUTHORITY\Authenticated Users":(OI)(CI)(RX)

C:\Windows\system32>icacls D:\Profiles /grant "NT AUTHORITY\SYSTEM":(OI)(CI)(F)

C:\Windows\system32>icacls D:\Profiles /grant "POLYGON\ekzorchik":(OI)(CI)(F)

C:\Windows\system32>icacls D:\Profiles /grant "BUILTIN\Administrators":(OI)(CI)(F)

Шаг №3: Я использую DFS как доступ к сетевым ресурсам, у меня есть дефолтные пути, в которые я добавляю:

\\polygon.local\Users\

  • Archives – почтовые архивы, где путь до сервера \\srv-cons.polygon.local\Archives
  • Documents – общий диск, \\srv-shares01.polygon.local\Documents
  • Forwarded folders – перемещаемые папки, \\srv-shares01.polygon.local\Forwarded folders
  • Profiles – профили, \\srv-shares01.polygon.local\Profiles

Создаю каталог

  • Profiles2 - \\srv-shares02.polygon.local\Profiles

Шаг №4: У каждой доменной учетной записи (к примеру, alektest4) в свойствах прописан на вкладке Profile

(User profile)

Profile path: \\polygon.local\Users\Profiles\alektest4

Шаг №5: Перехожу к процедуре переноса профилей в домене для пользователей, которые отделены у меня контейнером Office Users. Действия ниже проделываем вручную с srv-shares01

На компьютере пользователя выполняем Logoff или лучше выключаем компьютер

В свойствах учетной записи в домене во вкладке Profile меняем путь:

  • Profile path: на \\polygon.local\users\Profiles2\alektest4

Затем на srv-shares01 запускаю консоль командной строки с правами администратора и переношу профиль пользователя с srv-shares01

C:\Windows\system32>robocopy D:\Shares\Users\Profiles\alektest4.V6\ "\\polygon.local\users\Profiles2\alektest4.V6" /J /E /COPYALL /Z /R:3

На заметку: имя alektest4.V6 – это профиль на Windows 10 Pro, если имя alektest4.V2 – это профиль Windows 8.

После завершения копирования, включаем компьютер пользователя и авторизуемся под пользователем (он может сделать это сам) и его профиль теперь на другом сервере и считается успешно перенесенным.

Шаг №6: Теперь проработаю шаги по перемещению папок пользователя (все пользователя в OU=Office Users), это:

  • AppData(Roaming): \\polygon.local\users\Forwarded folders\%USERNAME%\Application Data
  • Desktop: \\polygon.local\users\Forwarded folders\%USERNAME%\Desktop
  • Documents: \\polygon.local\users\Forwarded folders\%USERNAME%\My Documents

У меня есть GPO которая была: GPO_Office_Users_Policy

User Configuration – Policies – Windows Settings – Folder Redirection – и через правый клик на AppData (Roaming) открываю свойства

  • Setting: Basic – Redirect everyone’s folder to the same location
  • Target folder location: Redirect to the following location
  • Root Path: \\polygon.local\users\Forwarded folders\%USERNAME%\Application Data

И для других папок по аналогии.

Также в этой политике предопределены доверенные сайты

User Configuration – Policies – Administrative Templates – Windows Components – Internet Explorer – Internet Control Panel – Security Page –

  • Site to Zone Assignment List: Enabled
    • Value name: *.gs.service.nalog.ru
    • Value: 2

И многие сайты *.sberbank.ru,*.service.nalog.ru

    • Value name: \\polygon.local\
    • Value: 1

В этой политики ограничение распространения стоит: OU=Office Users, а Scope: Authenticated Users

Через вкладку Delegation – Advanced добавляю созданную под это дело (перемещение) группу: GRP_GPO_Office_Users_Policy_Deny где права выставляю, как Deny (Apply group policy)

Шаг №7: Создаю дубль такой политики выше, именую ее как: GPO_Office_Users_Forward

В этой политики ограничение распространения стоит: OU=Office Users, а Scope: указываю группу GRP_GPO_Office_Users_Forward

Шаг №8: Создаю каталог на srv-shares02 где будут располагаться перемещаемые папки пользователя:

C:\Windows\system32>net share users="D:\Forwarded folders" /GRANT:"Authenticated Users",FULL

C:\Windows\system32>icacls "D:\Forwarded folders" /inheritance:d

C:\Windows\system32>icacls "D:\Forwarded folders" /remove "Users" /T

C:\Windows\system32>icacls "D:\Forwarded folders" /grant "CREATOR OWNER":(OI)(CI)(IO)(F)

C:\Windows\system32>icacls "D:\Forwarded folders" /grant "NT AUTHORITY\Authenticated Users":(OI)(CI)(RX)

C:\Windows\system32>icacls "D:\Forwarded folders" /grant "NT AUTHORITY\SYSTEM":(OI)(CI)(F)

C:\Windows\system32>icacls "D:\Forwarded folders" /grant "POLYGON\ekzorchik":(OI)(CI)(F)

C:\Windows\system32>icacls "D:\Forwarded folders" /grant "BUILTIN\Administrators":(OI)(CI)(F)

Шаг №9: Создаю новый путь в DFS:

\\polygon.local\Users\Forwarded folder 2 - \\srv-shares02\users

Шаг №10: Итого текущая последовательность действия по перемещению папок пользователя:

1) Выходим на компьютере где пользователь или выключаем его компьютер

2) Учетную запись пользователя папки которого перемещаем включаем в группы:

  • GRP_GPO_Office_Users_Forward
  • GRP_GPO_Office_Users_Policy_Deny

3) на srv-shares01 запускаем консоль командной строки

robocopy "\\srv-shares01\Forwarded folders\alektest4" "\\srv-shares02\users\alektest4" /J /E /COPYALL /Z /R:3

4) Авторизуемся на компьютере

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

На заметку: Важно не переносите перемещаемые папки пользователей в рабочее время, т.к. просадите скорость доступа к основному серверу, у меня было так.

Итого я практически разобрал, как успешно мигрировать профили пользователей и перемещаемые папки на другой сервер. Теперь после рабочего дня или в выходные данная миграция будет выполнена, а мне как бонус более стабильная работа и оплата переработок.

На этом у меня все, с уважением автор блога Олло Александр

Email: support@ekzorchik.ru

Telegram: @aka_ekzorchik

От ekzorchik