Время на прочтение
6 мин
Количество просмотров 91K
Привет, Хабр! Упомянутая в заголовке тема всё ещё порождает множественные дискуссии и недопонимание между системными администраторами. В своей статье я постараюсь ответить на следующие вопросы:
- Что такое SID и каких он бывает типов?
- Когда наличие двух и более машин с одинаковыми Machine SID будет порождать проблемы? Или, другими словами, когда всё-таки (не)нужно менять Machine SID?
- Что такое Sysprep и нужен ли Sysprep для клонирования/развёртывания?
Эти вопросы будут рассмотрены в первую очередь в контексте задачи развёртывания/клонирования множества рабочих станций/серверов из одного мастер-образа в пределах одной компании.
В основу рассуждений была взята популярная статья Марка Руссиновича (доступна также на русском языке), которую довольно часто неправильно интерпретируют (судя по комментариям и «статьям-ответам»), что приводит к неприятным последствиям. Добро пожаловать под кат.
TL;DR
- Менять SID машины само по себе бессмысленно и даже вредно для современных ОСей (пример последствий смены SID на Windows 10 ниже).
- Для подготовки машины к клонированию/развёртыванию образа стоит использовать sysprep.
- SID машины будет иметь значение, только если одну из склонированных машин промоутить до домен контроллера. Так делать не стоит.
- Не стоит клонировать/развёртывать образ машины, которая УЖЕ добавлена в домен; добавление в домен нужно делать после клонирования/развертывания.
Что такое SID, его типы и чем отличается Machine SID от Domain SID?
Ликбез
“SID (Security Identifier), или Идентификатор безопасности – Это структура данных переменной длины, которая идентифицирует учетную запись пользователя, группы, домена или компьютера (в Windows на базе технологии NT (NT4, 2000, XP, 2003,Vista,7,8)). SID ставится в соответствие с каждой учетной записью в момент её создания. Система оперирует с SID’ами учетных записей, а не их именами. В контроле доступа пользователей к защищаемым объектам (файлам, ключам реестра и т.п.) участвуют также только SID’ы.”
В первую очередь, важно различать SID компьютера (Machine SID) и SID домена (Domain SID), которые являются независимыми и используются в разных операциях.
Machine SID и Domain SID состоят из базового SID’а (base SID) и относительного SID’а (Relative SID = RID), который «приклеивается» в конец к базовому. Базовый SID можно рассматривать как сущность, в рамках которой можно определить группы и аккаунты. Машина (компьютер) является сущностью, в рамках которой определяются локальные группы и аккаунты. Каждой машине присваивается machine SID, и SID’ы всех локальных групп и аккаунтов включают в себя этот Machine SID с добавлением RID в конце. Для примера:
Machine SID для машины с именем DEMOSYSTEM | S-1-5-21-3419697060-3810377854-678604692 |
DEMOSYSTEM\Administrator | S-1-5-21-3419697060-3810377854-678604692-500 |
DEMOSYSTEM\Guest | S-1-5-21-3419697060-3810377854-678604692-501 |
DEMOSYSTEM\CustomAccount1 | S-1-5-21-3419697060-3810377854-678604692-1000 |
DEMOSYSTEM\CustomAccount2 | S-1-5-21-3419697060-3810377854-678604692-1001 |
Именно SID’ы (а не имена) хранятся в токенах доступа (access tokens) и дескрипторах безопасности (security descriptors), и именно SID’ы используются при проверке возможности доступа к объектам системы Windows (в том числе, например, к файлам).
На машине вне домена используются локальные SID’ы, описанные выше. Соответственно, при соединении с машиной удалённо используется локальная аутентификация, поэтому даже имея 2 или более машин с одинаковым machine SID в одной сети вне домена, проблем с логином и работой внутри системы не будет, т.к. SID’ы в операциях удалённой аутентификации попросту не используются. Единственный случай, в котором возможны проблемы, это полное совпадение имени пользователя и пароля на двух машинах – тогда, например, RDP между ними может глючить.
Когда машина добавляется в домен, в игру вступает новый SID, который генерируется на этапе добавления. Machine SID никуда не девается, так же как и локальные группы, и пользователи. Этот новый SID используется для представления аккаунта машины в рамках домена. Для примера:
Domain SID для домена BIGDOMAIN | S-1-5-21-124525095-708259637-1543119021 |
BIGDOMAIN\DEMOSYSTEM$ (аккаунт машины (computer account)) | S-1-5-21-124525095-708259637-1543119021-937822 |
BIGDOMAIN\JOHNSMITH (аккаунт пользователя (user account)) | S-1-5-21-124525095-708259637-1543119021-20937 |
Таким образом, машина DEMOSYSTEM теперь имеет два независимых SID’а:
• Machine SID, определяющая машину как сущность, в рамках которой заданы группы и аккаунты (первая строчка в первой таблице).
• SID аккаунта машины (computer account SID) в рамках домена BIGDOMAIN (вторая строчка во второй таблице).
Увидеть точное значение machine SID можно с помощью утилиты PsGetSid, запустив её без параметров. Второй SID, относящийся к домену, можно увидеть, запустив PsGetSid со следующими параметрами: psgetsid %COMPUTERNAME%$
. Соответственно, для примера из таблиц это будет “psgetsid DEMOSYSTEM$
«.
Основная суть в том, что SID’ы должны быть уникальны в пределах окружения (authority), к которому они применимы. Другими словами, если машине DEMOSYSTEM присвоен machine SID S-1-5-21-3419697060-3810377854-678604692-1000, то неважно, что у другой машины в той же сети будет идентичный machine SID, т.к. этот SID используется только локально (в пределах машины DEMOSYSTEM). Но в пределах домена BIGDOMAIN computer SID у обоих машин должен быть уникальным для корректной работы в этом домене.
Смена SID при клонировании или развёртывании
В применении к продукту Acronis Snap Deploy 5 (основное предназначение — массовое развёртывание систем из мастер-образа), в котором функциональность смены SID-а присутствовала с самой первой версии, это означает, что мы, как и многие пользователи, ошибочно пошли на поводу у устоявшегося мнения, что менять SID нужно.
Однако исходя из вышесказанного, ничего страшного в развёртывании (или клонировании) машины без изменения Machine SID вовсе нет, в случае если это развёртывание происходит до добавления машины в домен. В противном случае — возникнут проблемы.
Из этого правила есть одно исключение: нельзя клонировать машину, если в дальнейшем роль этого клона планируется повышать (promote) до уровня домена контроллера. В этом случае Machine SID домен контроллера будет совпадать с computer SID в созданном домене, что вызовет проблемы при попытке добавления оригинальной машины (из которой производилось клонирование) в этот домен. Это, очевидно, относится только к серверному семейству Windows.
Проблемы, связанные со сменой SID
Пересмотреть точку зрения на функциональность смены SID нас подтолкнул выпуск новой версии Windows. При первом тестовом развёртывании образа Windows 10 со сменой SID на получившейся машине обнаружилось, что кнопка Start перестала нажиматься (и это оказалось только вершиной «айсберга»). Если же развёртывать тот же образ без смены SID, то такой проблемы не возникает.
Основная причина в том, что эта опция вносит изменения практически во всю файловую систему развёртываемой машины. Изменения вносятся в реестр Windows, в разрешения NTFS (NTFS permissions) для каждого файла, в SID’ы локальных пользователей (так как SID пользователя включает в себя в том числе и machine SID; подробнее тут) и т.д.
В случае с Windows 10 большая часть ключей реестра не могла быть модифицирована («Error code = C0000005. Access violation» и другие ошибки) и, как следствие, наша функция смены SID’а отрабатывала не до конца, что и приводило к
трагической гибели
практически нерабочей копии Windows 10.
Было принято решение убрать эту опцию в случае, если в мастер-образе мы находим Windows 10 (или Windows Server 2016). Решение было принято на основе теоретических выкладок описанных выше плюс, естественно, было подтверждено практикой при тестировании недавно вышедшего обновления Acronis Snap Deploy 5 во множестве комбинаций: с и без переименования машин после развёртывания, с добавлением в домен и рабочую группу, развёртывание из мастер-образов снятых от разных состояний мастер-машины (она была добавлена в домен или рабочую группу в разных тестах) и т.д.
Использование Sysprep
Начиная с Windows NT клонирование (развертывание) ОСи с использованием только NewSID никогда не рекомендовалось самим Microsoft. Вместо этого рекомендуется использовать родную утилиту Sysprep (см. KB314828), которая, помимо смены SID’а, также вносит большое число других изменений, и с каждой новой версией Windows их становится только больше. Вот небольшой (неполный) список основных вносимых изменений:
- Удаляется имя машины
- Машина выводится из домена: это нужно для последующего успешного добавления в домен с новым именем
- Удаляются plug-and-play драйвера, что уменьшает риск возникновения проблем с совместимостью на новом «железе»
- Опционально удаляются Windows Event Logs (параметр ‘reseal’)
- Удаляются точки восстановления
- Удаляется профиль локального администратора и этот аккаунт отключается
- Обеспечивается загрузка целевой машины в режим аудита, позволяющий устанавливать дополнительные приложения и драйверы
- Обеспечивается запуск mini-setup при первом запуске для смены имени машины и другой дополнительной конфигурации
- Сбрасывается период активации Windows (сброс возможен до 3 раз)
Таким образом, клонирование/развертывание без использования Sysprep может повлиять (читай «скорее всего, сломает») на функциональность Windows Update, Network Load Balancing, MSDTC, Vista и выше Key Manager Activation (KMS), который завязан на CMID (не путать с Machine SID), также изменяемый Sysprep’ом, и т.д.
Итого
Повторяя TL;DR из начала статьи, основной вывод можно сделать такой: для подготовки образа машины к клонированию/развёртыванию следует использовать sysprep в подавляющем большинстве случаев.
Линки
— Как изменить SID в Windows 7 и Windows Server 2008 R2 с помощью sysprep
— How to View Full Details of All User Accounts in Windows 10
— Миф о дублировании SID компьютера
— Sysprep, Machine SIDs and Other Myths
— The Machine SID Duplication Myth (and Why Sysprep Matters)
— Yes you do need to worry about SIDs when you clone virtual machines – reasserting the ‘myth’
— Why Sysprep is a necessary Windows deployment tool
Спасибо за внимание!
В данной статье рассмотрено несколько способов, с помощью которых можно узнать идентификатор безопасности (SID) пользователя в операционной системе Windows 10.
SID (Security Identifier) — идентификатор безопасности, это уникальный идентификатор (код) который присваивается любой создаваемой доменной или локальной учетным записям, а также группе и другим объектам безопасности.
Операционная система использует именно идентификаторы безопасности (SID) для контроля доступа к различным ресурсам, таким как объекты файловой системы, ключам реестра, сетевым каталогам, что означает, что даже если вы измените имя пользователя, то это не повлияет на какие-либо предварительные настройки для этой учетной записи, поскольку каждая конфигурация привязана к SID, который остается постоянным.
Идентификатор безопасности может быть полезен во время выполнения определенных команд, связанных с безопасностью компьютера.
Содержание
- Как узнать идентификатор безопасности (SID) пользователя в командной строке
- Как узнать идентификатор безопасности (SID) пользователя в Windows PowerSell
- Как узнать идентификатор безопасности (SID) в редакторе реестра
Как узнать идентификатор безопасности (SID) пользователя в командной строке
Чтобы узнать SID текущего пользователя воспользуемся утилитой whoami, для этого откройте командную строку и выполните следующую команду:
whoami /user
Также узнать SID текущего пользователя можно выполнив следующую команду:
wmic useraccount where name=»%username%» get name,sid
Чтобы узнать все SID присутствующие в операционной системе, выполните команду:
wmic useraccount get name,sid
Чтобы узнать SID определённого пользователя, выполните следующую команду:
wmic useraccount where name=»TestUser1″ get sid
Где TestUser1 — имя пользователя, SID которого нужно узнать.
Чтобы узнать имя пользователя учетной записи по SID (обратная процедура), выполните команду:
wmic useraccount where sid=»S-1-5-21-3210479907-464018182-414762983-1002» get name
Как узнать идентификатор безопасности (SID) пользователя в Windows PowerSell
Также узнать идентификатор безопасности можно используя консоль Windows PowerShell.
Чтобы узнать все идентификаторы безопасности (SID) в консоли Windows PowerShell, выполните команду:
Get-WmiObject Win32_UserAccount | Select Name,SID
Чтобы узнать SID определённого пользователя, выполните следующую команду:
(gwmi win32_useraccount -Filter «name = \’TestUser1\'»).sid
Где TestUser1 — имя пользователя, SID которого нужно узнать.
Также узнать SID определённого пользователя, можно выполнив команду:
Get-WmiObject -Class Win32_UserAccount -Filter «name=\’TestUser1\'»
Где TestUser1 — имя пользователя, SID которого нужно узнать.
Чтобы узнать имя пользователя учетной записи по SID (обратная процедура), выполните команду следующего вида:
(gwmi win32_useraccount -Filter «sid = \’SID\'»).name
Где вместо SID укажите нужный идентификатор безопасности.
В данном примере команда выглядит так:
(gwmi win32_useraccount -Filter «sid = \’S-1-5-21-3210479907-464018182-414762983-1002\'»).name
Как узнать идентификатор безопасности (SID) в редакторе реестра
Используя редактор реестра, также можно узнать идентификатор безопасности (SID), для этого откройте редактор реестра нажав сочетание клавиш + R и в открывшемся окне Выполнить введите regedit и нажмите клавишу Enter ↵.
В открывшемся окне редактора реестра, скопируйте/вставьте или перейдите по следующему пути:
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\ProfileList
В разделе ProfileList вы увидите всех пользователей и их идентификаторы SID.
SID (Security IDentifier) – это уникальный идентификатор, который присваивается пользователям, группам, компьютерам или другим объектам безопасности при их создании в Windows или Active Directory. Windows использует SID, а не имя пользователя для контроля доступа к различным ресурсам: сетевым папкам, ключам реестра, объектам файловой системы (NTFS разрешения), принтерам и т.д. В этой статье мы покажем несколько простых способов получить SID пользователя, группы или компьютера, и обратную процедуру – получить объект по известному SID.
Содержание:
- Что такое SID объекта в Windows?
- Как получить SID локального пользователя?
- Узнать SID пользователя или группы в домене Active Directory
- Получить SID компьютера
- Как узнать имя пользователя или группы по известному SID?
- Поиск объектов в Active Directory по SID
Что такое SID объекта в Windows?
Как мы уже сказали, SID (security identifier) позволяет уникально идентифицировать пользовали, группу или компьютер в пределах определенной области (домена или локального компьютера). SID представляет собой строку вида:
S-1-5-21-2927053466-1818515551-2824591131—1103.
В данном примере:
- 2927053466-1818515551-2824591131 – это уникальный идентификатор домена, выдавшего SID (у всего объекта в одном домене эта часть будет одинакова)
- 1103 – относительный идентификатор безопасности объекта (RID). Начинается с 1000 и увеличивается на 1 для каждого нового объекта. Выдается контроллером домена с FSMO ролью RID Master)
SIDы объектов Active Directory хранятся в базе ntds.dit, а SIDы локальных пользователей и групп в локальной базе диспетчера учетных записей Windows (SAM, Security Account Manager в ветке реестра HKEY_LOCAL_MACHINE\SAM\SAM).
В Windows есть так называемые известные идентификаторы безопасности (Well-known SID). Это SID встроенных (BuiltIn) пользователей и групп, которые есть на любых компьютерах Windows. Например:
-
S-1-5-32-544
– встроенная группу Administrators -
S-1-5-32-545
– локальные пользователи -
S-1-5-32-555
– группа Remote Desktop Users, которым разрешен вход по RDP -
S-1-5-domainID-500
– учетная запись встроенного администратора Windows - И т.д.
В Windows можно использовать различные средства для преобразования SID -> Name и Username -> SID: утилиту whoami, wmic, WMI, классы PowerShell или сторонние утилиты.
Как получить SID локального пользователя?
Чтобы получить SID локальной учетной записи, можно воспользоваться утилитой wmic, которая позволяет обратится к пространству имен WMI (Windows Management Instrumentation) компьютера.
wmic useraccount where name='test_user' get sid
Команда может вернуть ошибку, если репозиторий WMI поврежден. Воспользуйтесь этой инструкцией для восстановления WMI репозитория.
Команда вернула SID указанного пользователя —
S-1-5-21-1175651296-1316126944-203051354-1005
.
Чтобы вывести список SID всех локальных пользователей Windows, выполните:
wmic useraccount get name,sid.
Если нужно узнать SID текущего пользователя (под которым выполняется команда), используйте такую команду:
wmic useraccount where name='%username%' get sid
Можно обратится к WMI напрямую из PowerShell:
(Get-CimInstance -Class win32_userAccount -Filter "name='test_user' and domain='$env:computername'").SID
В новых версиях PowerShell Core 7.x вместо команды Get-WmiObject нужно использовать Get-CimInstance.
Но еще проще получить SID локального пользователя с помощью встроенного PowerShell модуля управления локальными пользователями и группами (Microsoft.PowerShell.LocalAccounts).
Get-LocalUser -Name 'test_user' | Select-Object Name, SID
По аналогии можно получить SID локальной группы:
Get-LocalGroup -Name tstGroup1 | Select-Object Name, SID
Также вы можете использовать.NET классы System.Security.Principal.SecurityIdentifier и System.Security.Principal.NTAccount для получения SID пользователя с помощью PowerShell:
$objUser = New-Object System.Security.Principal.NTAccount("LOCAL_USER_NAME")
$strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier])
$strSID.Value
Узнать SID пользователя или группы в домене Active Directory
Вы можете узнать SID своей доменной учетной записи командой:
whoami /user
Получить SID пользователя домена Active Directory можно с помощью WMIC. В этом случае в команде нужно указать имя домена:
wmic useraccount where (name='jjsmith' and domain=′corp.winitpro.ru′) get sid
Для получения SID доменного пользователя можно воспользоваться командлетом Get-ADUser, входящего в состав модуля Active Directory Module для Windows PowerShell. Получим SID для доменного пользователя jjsmith:
Get-ADUser -Identity 'jjsmith' | select SID
Вы можете получить SID группы AD с помощью командлета Get-ADGroup:
Get-ADGroup -Filter {Name -like "msk-admin*"} | Select SID
Если на вашем компьютере не установлен модуль AD для PowerShell, вы можете получить SID пользователя с помощью классов .Net:
$objUser = New-Object System.Security.Principal.NTAccount("corp.wintpro.ru","jjsmith")
$strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier])
$strSID.Value
Эта же команда PowerShell в одну строку:
(new-object security.principal.ntaccount “jjsmith").translate([security.principal.securityidentifier])
Получить SID компьютера
Если компьютер с Windows добавлен в домен Active Directory, у него будет два разных SID. Первый SID – идентификатор локального компьютера (Machine SID), а второе – уникальный идентификатор компьютера в AD.
SID компьютера в домене Active Directory можно получить с помощью команды:
Get-ADComputer srv-rds1 -properties sid|select name,sid
SID локального компьютера (Machine SID) можно получить с помощью бесплатной утилиты PsGetsid (https://docs.microsoft.com/en-us/sysinternals/downloads/psgetsid): Но ее придется скачивать и устанавливать на каждый компьютер вручную.
.\PsGetsid64.exe
Или просто, обрезав последние 4 символа RID и SID любого локального пользователя:
$user=(Get-LocalUser Administrator).sid
$user -replace ".{4}$"
Важно, чтобы у каждого компьютера в домене был уникальный локальный SID. Если вы клонируете компьютеры или виртуальные машины, или создаете их из одного шаблона, то перед тем как добавить их в домен нужно выполнить команду sysprep. Эта утилита сбрасывает локальный Machine SID. Это избавит вас от частых ошибок “Не удалось восстановить доверительные отношения между рабочей станцией и доменом”.
Как узнать имя пользователя или группы по известному SID?
Чтобы узнать имя учетной записи пользователя по SID (обратная процедура), можно воспользоваться одной из следующих команд:
wmic useraccount where sid='S-1-3-12-12452343106-3544442455-30354867-1434' get name
Для поиска имени доменного пользователя по SID используйте командлеты из модуля
RSAT-AD-PowerShell
:
Get-ADUser -Identity S-1-5-21-247647651-3952524288-2944781117-23711116
Чтобы определить имя группы по известному SID, используйте команду:
Get-ADGroup -Identity S-1-5-21-247647651-3952524288-2944781117-23711116
Также можно узнать получить SID группы и пользователя с помощью встроенных классов PowerShell (без использования дополнительных модулей):
$objSID = New-Object System.Security.Principal.SecurityIdentifier ("S-1-5-21-2470456651-3958312488-29145117-23345716")
$objUser = $objSID.Translate( [System.Security.Principal.NTAccount])
$objUser.Value
Поиск объектов в Active Directory по SID
Если вы не знаете к какому типу объекта AD относится SID и какой точно командлет нужно использовать для его поиска (Get-AdUser, Get-ADComputer или Get-ADGroup), вы можете использовать универсальный метод поиска объектов в Active Directory по SID с помощью командлета Get-ADObject
$sid = ‘S-1-5-21-2470146651-3951111111-2989411117-11119501’
Get-ADObject –IncludeDeletedObjects -Filter "objectSid -eq '$sid'" | Select-Object name, objectClass
В нашем случае объект AD, который имеет данный SID, является компьютером (objectClass=computer).
Security Identifier (SID) — это уникальный идентификатор, который присваивается каждому пользователю и группе в операционной системе Windows. SID играет важную роль в обеспечении безопасности и прав доступа в системе. Однако иногда возникают ситуации, когда требуется сбросить SID для пользователя или группы. В этой статье мы рассмотрим, как выполнить сброс SID в Windows 10.
Первым шагом в процессе сброса SID является запуск командной строки от имени администратора. Для этого щелкните правой кнопкой мыши по значку «Пуск» в левом нижнем углу экрана и выберите «Командная строка (администратор)».
Когда командная строка откроется, введите следующую команду: sysprep /generalize. Эта команда запустит утилиту Sysprep, которая предназначена для обобщения системы и подготовки ее к клонированию или развертыванию на других компьютерах.
После того, как процесс Sysprep завершится, перезагрузите компьютер, выбрав «Перезагрузить» или нажав сочетание клавиш Ctrl+Alt+Del и выбрав пункт «Перезагрузить» из меню.
После перезагрузки ваша система будет иметь новый уникальный SID. Это может потребоваться, например, при клонировании или развертывании Windows 10 на другие компьютеры, чтобы избежать конфликтов и проблем с безопасностью.
Содержание
- Что такое SID и зачем он нужен в Windows 10
- Понятие и значение SID в операционной системе Windows 10
- Почему может потребоваться сброс SID в Windows 10
- Обстоятельства, при которых стоит сбросить SID в Windows 10
- Шаги для сброса SID в Windows 10
- Подготовка к сбросу SID в операционной системе Windows 10
- Сброс SID в Windows 10 с помощью утилиты Sysprep
Что такое SID и зачем он нужен в Windows 10
SID состоит из числа и/или букв и имеет следующий формат: S-1-5-21-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX, где каждая часть представляет определенную информацию. Первая часть (S-1-5-21) указывает на стандартный SID для пользователей и групп в Windows. Остальные числа и/или буквы являются уникальными индентификаторами.
SID позволяет системе Windows управлять правами доступа для каждого пользователя или группы. Он используется для идентификации и авторизации пользователей при входе в систему, а также для установления и контроля разрешений на файлы и папки.
Важно отметить, что SID не изменяется при изменении имени пользователя или группы. Это помогает сохранить непрерывность разрешений и доступа к ресурсам системы даже после переименования аккаунтов.
Зная SID пользователя или группы, вы можете управлять его доступом к файлам и папкам, добавлять или удалять разрешения для конкретных ресурсов. Кроме того, SID позволяет системе Windows отслеживать активность пользователей и вести аудит безопасности.
Понятие и значение SID в операционной системе Windows 10
Каждый SID в Windows 10 состоит из чисел, разделенных дефисами, и имеет следующую структуру:
Часть SID | Описание |
---|---|
Ревизия | Определяет формат SID |
Идентификатор авторитета безопасности (Authority) | Указывает на источник, который сгенерировал SID |
Подразделение безопасности (Subauthority) | Раздел, который определяет, к какому объекту привязан SID |
Идентификатор авторитета безопасности (Authority) может быть одним из трех типов:
Тип | Описание |
---|---|
Well-Known SID (Встроенный SID) | Заранее определенный SID, который ссылается на определенную группу или пользователя |
Local SID (Локальный SID) | Сгенерированный SID для объекта на локальной машине |
Domain SID (Доменный SID) | Сгенерированный SID, специфичный для домена |
Важно отметить, что SID является уникальным идентификатором и не меняется, даже если объект переименован. Если объект удален и затем создан заново, ему будет присвоен новый SID.
Почему может потребоваться сброс SID в Windows 10
Существует несколько ситуаций, когда может потребоваться сброс SID в Windows 10.
- Системные ошибки: При некорректных операциях с пользователями и группами, а также при нарушении структуры SID, могут возникать ошибки доступа к файлам, программам и системным ресурсам. Сброс SID позволяет восстановить нормальную работу системы и исправить ошибки.
- Клонирование системы: При копировании или клонировании системы Windows 10 на другой компьютер или виртуальную машину SID каждого пользователя и группы останутся теми же, что может вызвать конфликты и проблемы с безопасностью. Сброс SID после клонирования помогает избежать таких проблем.
- Обновление системы: При обновлении операционной системы Windows 10, SID пользователей и групп может измениться. Это может привести к неправильной работе программ, возникновению ошибок доступа и других проблем. Сброс SID после обновления позволяет устранить эти проблемы.
- Безопасность: В некоторых случаях сброс SID может быть необходим для усиления безопасности системы. Например, при передаче компьютера другому пользователю или при переносе системы на другое оборудование. Сброс SID поможет предотвратить несанкционированный доступ к файлам и настройкам предыдущего пользователя.
- Пересборка компьютера или установка нового оборудования. Если вы заменили значительную часть аппаратного обеспечения вашего компьютера или установили новые компоненты, сброс SID может позволить системе присвоить новые идентификаторы безопасности для новых устройств.
- Миграция пользовательских профилей. При переносе пользовательских профилей, которые настроены для работы на другой машине или в среде Active Directory, сброс SID может помочь избежать конфликтов и обеспечить корректную работу профилей на новом компьютере.
- Клонирование виртуальных машин. Если вы создаете копию виртуальной машины с целью восстановления системы или для создания нескольких одинаковых окружений, сброс SID может помочь избежать потенциальных проблем с идентификаторами безопасности.
- Восстановление системы из резервной копии. При восстановлении операционной системы из резервной копии, созданной на другой машине или в другой среде, сброс SID может помочь избежать проблем с разрывом связей между учетными записями и их назначенными разрешениями.
- Откройте командную строку от имени администратора. Для этого щелкните правой кнопкой мыши по кнопке «Пуск» и выберите «Командная строка (администратор)».
- Введите следующую команду и нажмите клавишу «Enter»:
cd C:\Windows\System32\Sysprep
- Запустите утилиту Sysprep, введя следующую команду и нажав клавишу «Enter»:
sysprep.exe /generalize
- Дождитесь, пока утилита Sysprep выполнит процесс обобщения. Это может занять некоторое время.
- После завершения процесса обобщения откроется окно с сообщением «Sysprep Готово!». Нажмите кнопку «OK».
- Теперь компьютер будет перезагружен в режиме аудита. Подождите, пока процесс перезагрузки завершится.
- После перезагрузки вам будет предложено ввести некоторые настройки, такие как имя компьютера и учетные данные пользователя. Введите необходимые данные и нажмите кнопку «Готово».
- После завершения процесса настройки системы вам будет предложено войти в систему с новым пользователем.
Внимание! Сброс SID может привести к потере доступа к некоторым файлам и программам, а также к сбою в работе системы. Поэтому перед выполнением данной операции рекомендуется создать резервную копию данных.
Обстоятельства, при которых стоит сбросить SID в Windows 10
Сброс SID (идентификатора безопасности) может потребоваться, когда возникают определенные обстоятельства в операционной системе Windows 10. Вот некоторые из них:
Выбор сброса SID должен осуществляться осторожно, так как это может повлиять на безопасность и функциональность системы. Рекомендуется создать резервную копию данных перед выполнением этого действия и консультироваться с опытным специалистом в случае сомнений.
Шаги для сброса SID в Windows 10
Следуя этим шагам, вы сможете сбросить SID (идентификатор безопасности) в операционной системе Windows 10:
Шаг | Описание |
---|---|
1 | Откройте командную строку от имени администратора. |
2 | Введите команду sysprep /generalize и нажмите клавишу Enter. |
3 | Дождитесь завершения процесса обобщения. Во время этого процесса, система может перезагрузиться несколько раз. Подождите, пока процесс полностью не завершится. |
4 | После завершения процесса обобщения, система будет находиться в режиме «Out of Box Experience» (OOBE) и попросит вас настроить язык, регион и другие параметры. Выберите необходимые настройки и завершите настройку системы. |
5 | Теперь ваш SID должен быть сброшен и система будет иметь новый уникальный идентификатор безопасности. |
Следуя этим шагам, вы сможете успешно сбросить SID в операционной системе Windows 10. Убедитесь, что вы выполняете все действия от имени администратора, и следуйте инструкциям внимательно.
Подготовка к сбросу SID в операционной системе Windows 10
Перед тем, как приступить к сбросу SID в операционной системе Windows 10, необходимо выполнить несколько предварительных действий:
1. Создайте резервную копию данных.
Процедура сброса SID может повлечь за собой потерю данных. Поэтому перед началом работы рекомендуется создать резервную копию всех важных файлов и папок.
2. Убедитесь, что у вас есть права администратора.
Для выполнения процедуры сброса SID вам понадобятся права администратора на компьютере.
3. Отключите облачное хранилище OneDrive.
OneDrive может конфликтовать с процедурой сброса SID, поэтому перед началом работы рекомендуется временно отключить его.
4. Завершите все запущенные приложения.
Перед сбросом SID рекомендуется закрыть все запущенные приложения, чтобы избежать возможных ошибок при процедуре.
5. Перезагрузите компьютер в безопасном режиме.
Для выполнения процедуры сброса SID рекомендуется перезагрузить компьютер в безопасном режиме. Это позволит избежать возможных проблем и ошибок, связанных с запущенными службами и программами.
При соблюдении всех вышеперечисленных шагов вы будете готовы к процедуре сброса SID в операционной системе Windows 10.
Сброс SID в Windows 10 с помощью утилиты Sysprep
Утилита Sysprep в Windows 10 позволяет сбросить уникальный идентификатор безопасности (SID) на компьютере. Сброс SID может быть полезен, если вы хотите создать копию системы, которая имеет уникальный SID, или если вы хотите изменить текущий SID на компьютере.
Вот пошаговая инструкция, как использовать утилиту Sysprep для сброса SID в Windows 10:
Теперь у вас есть компьютер с сброшенным SID. Обратите внимание, что после сброса SID у вас могут быть проблемы с некоторыми программами или службами, которые используют SID для идентификации компьютера. Поэтому перед использованием утилиты Sysprep рекомендуется создать резервную копию системы или иметь возможность восстановления системы.
В операционной системе Windows вместо имен пользователей для идентификации используются SID (Security Identifiers). В этой статье познакомимся с ними.
Идентификаторы безопасности
Идентификаторы безопасности — это такие уникальные номера, которые есть у: пользователей, групп, доменов, служб и компьютеров.
В общем у тех объектов, которые могут захотеть получить доступ к другим объектам, таким как: файлы, драйверы, разделы дисков, реестр.
SID представляет собой число переменной длины. Оно состоит из:
- номера версии идентификатора;
- идентификатора полномочий, который показывает максимальный уровень полномочий. Для группы «Все» равно 1. Для конкретной учетной записи или группы равно 5;
- несколько чисел подчиненных полномочий;
- значения RID, которое гарантирует уникальность.
SID всегда начинается с «S«, например:
S-1-5-21-1463437245-1224812800-863842198-1128
- 1 — номер версии;
- 5 — идентификатор полномочий;
- 21, 1463437245, 1224812800, 863842198 — значения подчиненных полномочий;
- 1128 — RID.
Каждый локальный пользователь создается на основе компьютерного или доменного идентификатора. А для уникальности и в конце записывается уникальный RID для каждого объекта. RID для новых пользовательских учетных данных начинается с 1000, и увеличивается с каждым новым пользователем и группой. До 1000 идут RID для стандартных пользователей, например 500 для пользователя «Администратор», 501 для «Гость».
Если компьютер повышается до контроллера домена, то за основу берется идентификатор компьютера и из него создается идентификатор домена. А идентификатор компьютера генерируется заново.
Стандартные SID
Есть предопределенные идентификаторы. Они одинаковые на всех машинах во всем мире. Так файл, доступный группе Everyone (Все), на одной машине, будет открыт и на другой, если перенести жесткий диск туда.
В системе Windows существуют следующие стандартные SID:
- s-1-0-0 — Nobody (Никто) — используется, когда идентификатор неизвестен;
- s-1-1-0 — Everyone (Все) — группа, включающая всех пользователей за исключением анонимных;
- S-1-2-0 — Local (Локальная) — группа пользователей, вошедших в терминалы, которые физически подключены к системе;
- S-1-3-0 — Creator Owner ID (ID Владельца) — идентификатор владельца, используемый в наследуемых ACL;
- S-1-3-1 — Creator Owner ID (ID Группы Владельца) — тоже что и выше, но для группы владельца;
- S-1-5-18 — LocalSystem — используется службами;
- S-1-5-19 — LocalService — используется службами;
- S-1-5-20 — NetworkService — используется службами.
Работа с утилитой PsGetsid.exe
Для просмотра идентификаторов можно воспользоваться программой PsGetsid из набора Sysinternals. Выполнив команду без параметров вы увидите имя компьютера и его SID:
>PsGetsid.exe PsGetSid v1.45 - Translates SIDs to names and vice versa Copyright (C) 1999-2016 Mark Russinovich Sysinternals - www.sysinternals.com SID for \\PC-1: S-1-5-21-679991269-3265548881-4162047351
Указав имя домена — увидите идентификатор домена:
>PsGetsid.exe test.domain.local PsGetSid v1.45 - Translates SIDs to names and vice versa Copyright (C) 1999-2016 Mark Russinovich Sysinternals - www.sysinternals.com SID for TEST\test.domain.local: S-1-5-21-1241004363-267861926-1289139162
Указав свое имя узнаете свой идентификатор, он будет зависеть от SID домена. И на всех компьютерах в домене будет одинаковым:
>PsGetsid.exe testuser PsGetSid v1.45 - Translates SIDs to names and vice versa Copyright (C) 1999-2016 Mark Russinovich Sysinternals - www.sysinternals.com SID for TEST\testuser: S-1-5-21-1241004363-267861926-1289139162-1155
Как видно выше, к доменному SID просто добавили RID. При этом, локальные пользователи с одинаковыми именами на всех компьютерах будут разными.
В качестве параметра можно указать сам идентификатор, утилита в этом случае вернет имя пользователя:
>PsGetsid.exe S-1-5-21-1241004363-267861926-1289139162-1155 PsGetSid v1.45 - Translates SIDs to names and vice versa Copyright (C) 1999-2016 Mark Russinovich Sysinternals - www.sysinternals.com Account for PC-1\S-1-5-21-1241004363-267861926-1289139162-1155: User: TEST\testuser
Можно узнать имя администратора домена, для этого используем идентификатор домена и стандартный для администратора RID = 500:
>PsGetsid.exe S-1-5-21-1241004363-267861926-1289139162-500 PsGetSid v1.45 - Translates SIDs to names and vice versa Copyright (C) 1999-2016 Mark Russinovich Sysinternals - www.sysinternals.com Account for PC-1\S-1-5-21-1241004363-267861926-1289139162-500: User: TEST\Administrator
Любой компьютер в домене имеет свой SID, он также будет состоять из SID домена и своего RID. Чтобы его узнать пишите <домен\имя_компьютера$>:
>PsGetsid64.exe TEST\SRV-1$ PsGetSid v1.45 - Translates SIDs to names and vice versa Copyright (C) 1999-2016 Mark Russinovich Sysinternals - www.sysinternals.com SID for TEST\SRV-1$: S-1-5-21-1241004363-267861926-1289139162-1610
SIP Процессов
Так как процессы запускаются от имени какого-либо пользователя, то процессы тоже имеют SID. Посмотреть их можно с помощью программы Process Explorer. Для этого нужно открыть свойства выбранного процесса и перейти на вкладку «Security«:
Выше я смотрю SID пользователя под которым работает один из процессов svhost.exe.
Вернуться к оглавлению
Сводка
Имя статьи
Идентификаторы безопасности SID
Описание
В операционной системе Windows вместо имен пользователей для идентификации используются SID (Security Identifiers). В этой статье познакомимся с ними