Тут я буду публиковать различные полезные заметки и хаки про Oracle Hyperion/Weblogic/OHS/WinX/Cygwin/Bash/Linux А так же способы автоматизации повседневных задач системного администратора.
P.S: Прошу отключить AdBlock на моем блоге или добавить адрес сайта в белый список.
пятница, 24 июля 2015 г.
Перенос данных на другой Windows Server c сохранением NTFS прав доступа.
30 пользователей и более 30тыс файлов, с установленными уникальными NTFS разрешениями. Поиск в интернетах показал, что в Windows нет штатного инструмента для миграции пользователей (с паролями) и правами доступа к файлам. При создании новых пользователей им назначаются рандомные SID, т.е просто создать пользователя и перетащить директорию с NTFS правами не выйдет, т.к не совпадут SID. Метод описаный тут — https://technet.microsoft.com/en-us/library/dd379531%28v=ws.10%29.aspx не подходит, т.к используются разные локали.
Официальный ответ Microsoft: создать необходимые учетные записи и группы на новом сервере, а уже затем изменить NTFS пермиссии. т.е они тоже не знают и не имеют нужного инструмента.
В результате поисков нашел утилиту Subinacl.exe и решил немного подправить ее экспорт файл для достижения нужного нам результата:
SubInACL is a command-line tool that enables administrators to obtain security information about files, registry keys, and services, and transfer this information from user to user, from local or global group to group, and from domain to domain. For example, if a user has moved from one domain (DomainA) to another (DomainB), the administrator can replace DomainA\User with DomainB\User in the security information for the user’s files. This gives the user access to the same files from the new domain.
Создаем на 2008 сервере пользователей, с такими же именами как на 2003.
Устанавливаем на оба сервера утилиту Subinacl, делаем экспорт с 2003 сервера и импорт в 2008. Для удобства экспорта делаем командный файл: subinacl /noverbose /output=c:\perm_dir.txt /subdirectories=directoriesonly D:\ftp\*.* > dir.out 2>&1 subinacl /noverbose /output=c:\perm_file.txt /subdirectories=filesonly D:\ftp\*.* > file.out 2>&1
т.е экспортируем список прав на папки и файлы.
Редактируем полученные файлы экспорта. Делаем поиск с заменой по всему файлу Администраторы ==> Administrators Отсутствует ==> None /pace = my_comp \directory ==> заменяем имя 2003 сервера на имя 2008 +File D:\ ftp\directory ==> f:\ftp\directory (если используется такое же расположение файлов, то ничего не меняем. В ином случае меняем диск и начало пути. Я располагал директорию на другом диске)
Ну в Windows 7 можно было переносить профили (за пароли не помню). Вот статья по этому поводу: http://pk-help.com/workstation/user-profile/. Вот только необходимо помнить, что перенесутся все глюки и хлам.
ЗЫ: Я месяц назад настраивал новый сервак, то мои 35+ юзеров были пересозданы вручную за час с пом. списка юзеров.
Я тут сейчас скапитаню, но раз уж у вас серверные ОС, может развернуть роль службы каталогов на той машине, откуда нужно перенести пользователей, локальные пользователи конвертнутся в доменных, потом включить вторую машину в домен и вуаля? »
Перенос всех пользователей в новый домен Active Directory
По определённым причинам появилась необходимость в переносе пользователей из одного домена в другой. Это возможно сделать штатными средствами операционной системы Microsoft. И в этом нам поможет утилита ldifde.exe . Она предназначена для экспорта/импорта пользователей Active Directory в файл с расширением .ldf . При необходимости его можно редактировать любым текстовым редактором (как в моём случае). Но программа переносит только пользователей, без групп и паролей. Пароли будут сброшены на пустые и при следующем входе в систему будет предложено сменить пароль.
На контроллере домена запускаем командную строку CMD и для удобства переходим в корень диска С c: , так как при выполнении команды вся информация будет выгружена в файл Exportuser.ldf .
Где SRVDC1 — это имя контроллера домена, а dc=DOMAIN,dc=NAME — это текущее доменное имя вашего контроллера. На выходе мы получаем файл Exportuser.ldf в корне диска С.
Так как доменное имя нового домена отличается от текущего, то в файле необходимо заменить все строчки dc=DOMAIN,dc=NAME на необходимые, с указанием нового имени. Сохраняемся, перекидываем файл на новый сервер и выполняем импорт следующей командой
ldifde -i -f C:Exportuser.ldf -s NEWSRVDC1
Где NEWSRVDC1 — это имя нового контроллера домена.
ПЕРЕНОС ГРУППОВЫХ ПОЛИТИК
Далее указываем путь, куда будем выгружать политики. Если у вас более одной политики, то лучше под это создать отдельную директорию, так как под каждую политику будет создаваться новый каталог.
Копируем их в новый домен, но домен то у нас новый, а резервная копия может содержать упоминания или ссылки на ресурсы старого домена. Поправить значения можно при помощи утилиты Migration Table Editor ( mtedit.exe ). Опять-таки штатный софт на борту MS Windows Server. На новом домене запускаем консоль gpmc.msc и на Объекты групповой политики правой кнопкой мыши вызываем меню, выбираем Открыть редактор таблиц миграции.
После выбираем Сервис / Заполнить из резервной копии, указываем путь к каталогу. Перед нами откроется таблица со списком всех экспортированных групповых политик.
Нажимаем OK и перед нами откроется список всех нестандартных атрибутов политик. Ищем где упоминается старый домен и правой кнопкой меняем на правильный атрибут из нашего нового домена
Все приготовления закончены, теперь дело за малым — выполнить импорт. Открываем gpmc.msc , создаём новую пустую политику в которую будем импортировать настройки и по правому клику мыши из меню выбираем Импорт параметров. . Идём далее, выбираем папку архива, выбираем соответствующий объект групповой политики, Готово!
Перенос настроек локальной групповой политики между компьютерами
Групповые политики являются мощным и одновременно гибким инструментом настройки параметров ОС Windows и являются незаменимым средством приведения компьютеров к единой конфигурации в рамках домена Active Directory. При отсутствии домена настраивать параметры отдельного компьютера можно через локальную групповую политику. Существенный недостаток локальных политик – отсутствие средств их распространения между компьютерами рабочей группы. В результате, администратору приходится на каждом компьютере вручную настраивать параметры групповой политики. При большом количестве компьютеров и настраиваемых параметров это не очень-то продуктивно…
Оптимально было бы создать в рамках рабочей группы некий эталонный компьютер с необходимыми настройками локальных групповых политик и параметров безопасности, которые должны быть применены на всех компьютерах, и при внесении изменений распространять эту конфигурацию на остальные ПК.
В этой статье мы рассмотрим, как раз такой сценарий, позволявший просто и быстро перенести настройки локальной групповой политики с одного настроенного компьютера на другие ПК в рабочей группе.
Проблемы переноса локальных Group Policy между компьютерами
Самый простой способов перенести настройки локальной GP (групповой политики) между компьютерами – вручную скопировать содержимое папки %systemroot%\System32\GroupPolicy (по умолчанию этот каталог скрыт) с одного компьютера на другой с заменой содержимого (после замены файлов нужно вручную запустить обновление политик командой gpupdate/force или перезагрузить ПК).
Этот метод довольно прост, но имеет несколько существенных недостатков:
Так не переносятся локальные параметры безопасности (Security Templates);
Есть вероятность неработоспособности GPO, если версия или сборка ОС на компьютере-доноре и получателе сильно отличаются;
Невозможность создания на базе локальной политики доменной GPO (импорта политики в домен Active Directory для дальнейшего использования);
При копировании политики придется вручную править любые упоминания имени локального компьютера в настройках;
Есть ряд проблем с переносом нестандартных admx шаблонов.
Гораздо проще и удобнее для импорта/экспорта локальной групповой политики, созданной с помощью gpedit.msc, воспользоваться утилитой LocalGPO, входящей в состав пакета MicrosoftSecurityComplianceManager3.0. Утилита LocalGPO позволяет не только быстро создать резервную копию локальной GPO и восстанавливать из нее настройки локальных политик, но и создавать исполняемый файл GPOPack, позволяющий одним щелчком перенести (импортировать) настройки локальной GPO на другую машину.
Утилита LocalGPO – позволяет экспортировать все настройки локальных политик, в том числе из разделов INF, POL, Audit, параметры политики брандмауэра Windows и т.п. LocalGPO идеально подходит для использования в организациях без доменов для распространения шаблона групповой политики между компьютерами. Также она крайне полезна при использовании в связке с системой развертывания Microsoft Deployment Toolkit (MDT) или SCCM.
Установка утилиты LocalGPO
Чтобы установить утилиту LocalGPO на локальном компьютере (в нашем случае он будет выступать в качестве донора настроек локальной групповой политики):
Откройте скачанный файл Security_Compliance_Manager_Setup.exe как архив с помощью любого архиватора (7Zip или WinRar).
Разберемся, как пользоваться утилитой LocalGPO. Управление возможно только через интерфейс консоли (командной строки). Откроем командную строку с правами администратора и перейдем в каталог C:\ProgramFiles\LocalGPO (на 32 битных системах) или C:\ProgramFiles(x86)\LocalGPO (на 64-битных).
LocalGPO Tool ————————— This tool only runs on Windows XP Professional, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, or Windows Server 2012
Дело в том, что утилита LocalGPO поддерживает только для Windows 8 (Windows Server 2012) и ниже. В более новых версиях Windows (Windows 8.1, Windows 10) рекомендуется использовать новую утилиту LGPO.exe (см. последний раздел в этой статье). Хотя технически, старый скрипт LocalGPO.wsf поддерживает и Windows 10 / 8.1 и Windows Server 2016 / 2012 R2. Чтобы LocalGPO.wsf работал с новыми ОС, достаточно изменить в файле код функции проверки версии ОС (ChkOSVersion), добавив следующие строки:
If(Left(strOpVer,4) = «10.0») and (strProductType = «1») then strOS = «Win10» ElseIf(Left(strOpVer,3) = «6.3») and (strProductType <> «1») then strOS = «WS16» ElseIf(Left(strOpVer,3) = «6.3») and (strProductType = «1») then strOS = «Win81»
Экспорт локальной политики
Для экспорта настроек локальной групповой политики в каталог C:\GPObackup (каталог нужно создать предварительно), выполним команду cscript LocalGPO.wsf /Path:C:\GPObackup /Export
В целевом каталоге появится новая папка с неким GPO GUID, в которой будут содержаться все параметры локальной политики компьютера.
По сути мы создали резервную копию локальной GPO, к которой мы всегда сможем откатиться.
Утилита LocalGPO.wsf поддерживает работу с множественной локальной групповой политикой (Multiple Local GPO — MLGPO). Чтобы выгрузить локальную политику, привязанную к конкретной локальной группе или пользователю, нужно использовать следующий формат использования LocalGPO.wsf.
Чтобы восстановить настройки Local Group Policy из полученной копии, выполним импорт следующей командой, указав в качестве аргумента путь к каталогу. cscript LocalGPO.wsf /Path:C:\GPObackup\
GPOPack – формат переноса локальной групповой политики на другие компьютеры
Утилита LocalGPO предполагает возможность создания пакета GPOPack, предназначенного для удобного импорта настроек локальной GPO на другие компьютеры (не требует предварительной установки LocalGPO на целевой компьютер). Этот же формат удобен для использования в задачах развертывания ОС через Microsoft Deployment Toolkit (MDT) или Microsoft System Center Configuration Manager (SCCM). Для создания переносимого пакета, выполним: cscript LocalGPO.wsf /Path:C:\GPObackup /Export /GPOPack Скопируем полученную папку на другой компьютер (на котором планируется применить эти политики), откроем командную строку с правами администратора и запустим файл GPOPack.wsf.
Сообщение «AppliedGPOPacktoLocalPolicy» говорит о том, что политики перенесены успешно. Осталось перезагрузить систему и проверить, что на этот компьютер теперь действуют такие же настройки локальной политики.
Полный список аргументов утилиты LocalGPO.wsf доступен с ключом /?:
Сброс настроек локальной политики на значения по-умолчанию
С помощью LocalGPO можно сбросить все текущие настройки локальной политики на стандартные, для этого выполним команду:
cscript LocalGPO.wsf /Restore
Импорт локальной групповой политики в домен AD
Формат импорта политик LocalGPO предполагает возможность импорта настроек локальной групповой политики в доменную GPO. Эта операция может быть выполнена через функционал резвого копирования и восстановления доменных GPO в консоли управления GPMC(GroupPolicyManagementConsole). Пример использования подобной техники есть в статье Перенос GPO между доменами.
Утилита LGPO.exe для управления локальными GPO
Утилита консольной строки LGPO.exe предназначена для автоматизации управления локальными групповыми политиками и предназначена заменить более не поддерживаемую утилиту LocalGPO. Поэтому в настоящий момент рекомендуется использовать только ее. LGPO.exe входит в состав Security Compliance Manager (SCM).
Утилита LGPO.exe обладает следующими возможностями:
Возможность экспорта настроек локальной групповой политик.
Импортировать настройки GPO из резервной копии. Поддерживается импорт в том числе файлов registry.pol, шаблонов безопасности, CSV файлов.
Преобразование файлов registry.pol в удобочитаемый формат LGPO и наоборот.
Чтобы экспортировать текущие настройки локальной GPO в указанный каталог, выполните команду:
LGPO.exe /b c:\tools\GPO
Утилита выгрузит все текущие настройки политик в папку с GUID групповой политики.
Чтобы представить текущие настройки GPO в файле резервной копии из файла registry.pol в удобном для анализа текстовом виде, выполните команду:
Теперь импортируйте новые настройки политик из pol файла:
LGPO.exe /m «C:\tools\GPO\registry_new.pol»
Чтобы импортировать (перенести) настройки локальной GPO с этого компьютера на другой, скопируйте каталог с политикой на целевой компьютере и выполните команду:
LGPO.exe /g C:\tools\GPO\
Версия LGPO v2.2 поддерживает корректную работу с множественной локальной политикой (MLGPO), которая позволяет настраивать отдельные политики для разных пользователей (доступно в Windows Vista и выше).