Remontnouta.ru

ПК Ремонт техники
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Вывести компьютер из домена с сохранением профиля

Вывести компьютер из домена с сохранением профиля

Добрый день! Уважаемые читатели и гости, одного из крупнейших IT блогов рунета Pyatilistnik.org. В прошлый раз я вам показал, все методы ввода Windows 10 в домен, сегодня я хочу показать обратную задачу, и научу вас правильно выводить компьютеры из домена, будь то клиентские версии Windows 7, 8.1 или же серверные Windows Server. Расскажу для чего, это нужно уметь и почему нельзя просто забить на такие компьютеры. Уверен, что данная информация окажется для начинающих системных администраторов полезное, ее кстати любят спрашивать на собеседованиях. Ну приступаем.

Сохраненный кэш доменной учетной записи в Windows

Вход на компьютер под кэшированными данными для пользователя доступен, если он ранее хотя бы один раз авторизовался на этом компьютере, и пароль в домене не был сменен с момента входа. Пароль пользователя в cashed credentials никогда не истекает. Если доменная политика паролей вынудит пользователя изменить пароль, сохраненный пароль пользователя в локальном кэше компьютера не изменится, пока пользователь не войдет на компьютер под новым паролем. Т.е. если пароль пользователя в AD был изменен после последнего входа на компьютер, и компьютер находился все время в офлайн режиме без доступа в сеть, то пользователь сможет войти на этот компьютер под старым паролем.

Если домен Active Directory недоступен, Windows проверяет, что введенные имя пользователя и пароль соответствуют сохраненному локальному хэшу и разрешает локальный вход на компьютер.

Сохраненные пароли хранятся в ветке реестра HKEY_LOCAL_MACHINESecurityCache (файл %systemroot%System32configSECURITY). Каждый сохранённый хэш содержится в Reg_Binary параметре NL$x (где x – индекс кэшированных данных). По умолчанию даже у администратора нет прав на просмотр содержимого этой ветки реестра, но при желании их можно легко получить.

Читайте так же:
Выходное напряжение блока питания ноутбука

HKEY_LOCAL_MACHINESecurityCache сохраненный хэш пароля в реестре

Если в локальном кэше для пользователя нет сохранённых учетных данных, то при входе на офлайн компьютер, появится сообщение:

Отсутствуют серверы, которые могли бы обработать запрос на вход в сеть.

Как узнать SID пользователя

Операционная система Windows для идентификации использует специальный идентификатор безопасности (Security Identifier, SID), который присваивается каждой учетной записи пользователя (а также компьютера или группы) при ее создании. В отличие от имени каждый SID уникален, что позволяет системе однозначно идентифицировать пользователя. Поэтому операционная система оперирует именно SID-ами и использует их для контроля доступа к различным ресурсам — принтерам, файлам и папкам и т.п.

Примечание. Говоря об уникальности SID, надо сделать одну оговорку. В Windows существуют так называемые встроенные (BuiltIn) учетные записи, такие как Administrator или Guest. SID-ы этих записей одинаковы в каждом экземпляре Windows вне зависимости от версии ОС. Это дает администратору возможность более-менее централизованно управлять доступом при отсутствии доменной структуры.

SID для локальных учетных записей храниться базе данных диспетчера учетных записей (Security Account Manager, SAM) на локальном компьютере, для доменных — в базе Active Directory. И сегодня речь пойдет о том, как можно узнать SID пользователя по его имени и наоборот, как выяснить имя пользователя по его SID.

Whoami

Когда требуется посмотреть SID текущего пользователя, то проще всего воспользоваться утилитой whoami. Для этого надо открыть консоль cmd и выполнить команду:

узнаем SID пользователя с помощью whoami

В том случае, когда необходимо узнать SID произвольного пользователя, можно воспользоваться Windows Management Instrumentation (WMI). Один из инструментов для работы с WMI — утилита WMIC. Так например, узнать SID пользователя Kirill можно такой командой:

wmic useraccount where name=′Kirill′ get sid

А можно и наоборот, выяснить имя пользователя по его SID:

Читайте так же:
Блютуз передатчик для автомобиля

wmic useraccount where sid=′S-1-5-21-4178654016-3479515840-607560339-1000′ get name

узнаем SID локального пользователя с помощью wmic

Дополнительно в WMI-запросе можно указать имя компьютера (для локального) или домена (для доменного пользователя). Например эта команда выведет SID локального администратора:

wmic useraccount where (name=′administrator′ and domain=′%computername%′) get sid

а эта — доменного:

wmic useraccount where (name=′administrator′ and domain=′contoso′) get sid

узнаем SID локального иили доменного администратора с помощью wmic

Для обычного пользователя все также, узнаем SID по имени:

wmic useraccount where (name=′kirill′ and domain=′contoso′) get sid

wmic useraccount where (sid=′S-1-5-21-2404695605-4156858507-746700462-1001′ and domain=′contoso′) get name

узнаем SID доменного пользователя с помощью wmic

Примечание. В запросе вместо имени компьютерадомена можно использовать переменные %computername% и %userdomain%.

PowerShell и WMI

PowerShell также позволяет работать с WMI. Для примера обратимся к классу win32_userAccount и выведем SID доменного:

и локального пользователя:

Также вместо имени компьютера и домена можно указывать переменные окружения $env:computername и $env:userdomain, например:

узнаем SID пользователя с помощью wmi

Для обратной операции (узнать имя пользователя по SID) нам потребуется использовать свойство SID класса win32_SID. Например:

узнаем имя пользователя по его SID с помощью wmi

Как вариант, для работы с WMI можно использовать командлет Get-WmiObject (или Get-CimInstance). Например так мы узнаем SID пользователя:

(Get-WmiObject -Class win32_userAccount -Filter ″name=′Kirill′ and domain=′Contoso′″).SID

узнаем SID пользователя с помощью Get-WmiObject

(Get-WmiObject -Class win32_userAccount -Filter ″SID=′S-1-5-21-2404695905-416858507-746700462-1001′″).Name

узнаем имя пользователя по SID с помощью Get-WmiObject

PowerShell и .NET

Также узнать SID пользователя можно с помощью .NET класса System.Security.Principal.NTAccount. Этот класс используется для представления пользователя или группы. Для получения SID локального пользователя надо создать новый объект этого класса и передать ему в виде параметра имя пользователя, а затем с помощью метода Translate перевести объект пользователя в объект класса System.Security.Principal.SecurityIdentifier, который предназначен для представления SID пользователя или группы:

$User = New-Object System.Security.Principal.NTAccount(″Kirill″)
$SID = $User.Translate([System.Security.Principal.SecurityIdentifier])
$SID.Value

Для доменного пользователя процедура идентична, только в виде параметра передаются имя пользователя и имя домена:

$User = New-Object System.Security.Principal.NTAccount(″Contoso″,″Kirill″)
$SID = $User.Translate([System.Security.Principal.SecurityIdentifier])
$SID.Value

Читайте так же:
Игровые наушники с отличным микрофоном

узнаем SID пользователя с помощью .Net

Для обратной процедуры получения имени по SID делаем наоборот — сначала создаем объект класса System.Security.Principal.SecurityIdentifier и передаем ему в виде параметра SID пользователя, а затем переводим его в объект класса System.Security.Principal.NTAccount и выводим свойство Value, содержащее имя пользователя:

$SID = New-Object System.Security.Principal.NTAccount(″S-1-5-21-4178654016-3479515840-607560339-1000″)
$User = $SID.Translate([System.Security.Principal.NTAccount])
$User.Value

узнаем имя пользователя по SID с помощью .Net

PsGetSid

Как видите, встроенных средств для выяснения SID в Windows предостаточно, но для полноты картины возьмем еще одно, от стороннего разработчика.

PsGetSid — утилита командной строки от Sysinternals, входящая в состав пакета PsTools. PsGetSid умеет получать SID пользователя по его имени и наоборот, работает как с локальными, так и с доменными аккаунтами. Утилита не требует установки, ее достаточно скопировать на нужный компьютер и запустить.

  • Осуществляет перенос всех данных и настроек профиля пользователя
  • Автоматически соединяет компьютер с новым доменом
  • Поддерживает перенос в домены по VPN
  • Поддерживает все домены Active Directory и Samba
  • Может использоваться для переноса из сети Novell NDS
  • Поддерживает составление сценариев для предприятий
  • Поддерживает перенос удаленных компьютеров «пушем»
  • 100% репликация профилей пользователей

Программа User Profile Wizard предлагается в двух версиях. для ознакомления с функциональностью версий Corporate и Professional. Версия Corporate Edition лицензируется «за рабочее место». Версия Professional лицензируется «за техника».

Вывод компьютера из домена

Для корректной работы Active Directory, необходимо правильно выводить сервер из домена. От этого зависит бесперебойная работа системы и устойчивая связь с доменом. Причины, по которым компьютер выводится:

  • сервер неактивен более месяца;
  • для бесперебойной работы ActiveDirectory, чтобы в системе не было неактивных CD-объектов;
  • переустановка программного обеспечения на сервере.

На компьютере необходимо своевременное проведение технического обслуживания и тестирование работы систем управления доменами.

2 ответа 2

Корректно вывести ПК из домена можно тем же путем, что и ввести в домен – в свойствах системы, указав, что ПК является членом рабочей группы.
Что касается профиля пользователя, то можно воспользоваться программой ProfileWizard – она не переносит данные из одной учетной записи в другую (локальной папки учетной записи в другую), а заменяет пути и разрешения для целевой учетной записи таким образом, что эта учетная запись использует локальную папку профиля уже существующей учетки (надеюсь понятно написал :))
Ссылка на ProfileWizard

Читайте так же:
Заблокировать устройство через гугл аккаунт

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

Впрочем, у меня срабатывал вариант – при отсутствии доступа к домену, как таковому, вход по "юзеру из домена" все равно возможен на локальной машине.

Если же вас именно это не устраивает и хочется просто иметь юзера на локальной машине из рабочей группы, то можно его создать, перенести соответсвующие документы из папки доменного юзера в папку обычного, и по необходимости – изменить владельца и права доступа к документам. Учтите, что переносить и менять права придется все равно придется: 1. действуя под админом. 2. Исключая использование проводника (он весьма трепетно относится к работе с системными папками), заменив его тоталкоммандером или far.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector