Как изменить sid пользователя
Сообщения: 41
Благодарности: 0
Известно как можно сменить сид на другой, автоматически создаваемый.
А есть ли возможность изменить на конкретно указанный сид, а не генерируемый.
Как это была в newsid для более ранних версий виндовса.
Спрашивать зачем я страдаю такой фигней не объязательно, и предлагать тот же newsid, который чаще всего вызывет синий экран тоже.
Еще кто-то что-то полезное слышал ?
Сообщения: 36497
Благодарности: 6676
| Конфигурация компьютера | |
| Ноутбук/нетбук: Lenovo ThinkPad W530 24385AU (i7-3740QM 2.7GHz, 24GB RAM, Samsung 840 Pro 256GB + HDD 750GB) | |
| ОС: Windows 11 Pro x64 | |
| Прочее: На пенсии: HP Pavilion dv7t (17.3», i7-2630QM, HD 6770M 1Gb, 8Gb RAM) |
Цитата Iven:
| Еще кто-то что-то полезное слышал ? » |
Да, слышали. Миф о дублировании SID компьютера — Mark Russinovich по-русски
![]()
——-
Канал Windows 11, etc | Чат @winsiders
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.
Сообщения: 41
Благодарности: 0
Не вижу ничего полезного для озвученной задачи
Сообщения: 36497
Благодарности: 6676
| Конфигурация компьютера | |
| Ноутбук/нетбук: Lenovo ThinkPad W530 24385AU (i7-3740QM 2.7GHz, 24GB RAM, Samsung 840 Pro 256GB + HDD 750GB) | |
| ОС: Windows 11 Pro x64 | |
| Прочее: На пенсии: HP Pavilion dv7t (17.3», i7-2630QM, HD 6770M 1Gb, 8Gb RAM) |
Iven, а я задачи не вижу, разве что вы ради спортивного интереса хотите этого добиться.
И рекомендую «лицо попроще сделать» Обычно, это положительно сказывается на количестве и качестве ответов.
![]()
——-
Канал Windows 11, etc | Чат @winsiders
Это сообщение посчитали полезным следующие участники:
Сообщения: 41
Благодарности: 0
просто достало, что где не спросишь все с умным лицом кидают ссылку на статью про дублирование — «о, тип спрашивает что-то про sid — да какая разница что именно — вот статья про sid на все случаи жизни — на читай до посинения»
еще напрягает, что все думают будто узнав для чего что-то нужно, они сумеют предложить какую-то умную альтернативу
а задача проста — сменить sid на win 7 на нужный мне — все остальное темы не касается (можна считать что для спортивного интереса)
впрчем, я и так уверен, что никто не знает (просто спросил на всякий случай)
Последний раз редактировалось Iven, 20-03-2011 в 18:56 .
Сообщения: 36497
Благодарности: 6676
| Конфигурация компьютера | |
| Ноутбук/нетбук: Lenovo ThinkPad W530 24385AU (i7-3740QM 2.7GHz, 24GB RAM, Samsung 840 Pro 256GB + HDD 750GB) | |
| ОС: Windows 11 Pro x64 | |
| Прочее: На пенсии: HP Pavilion dv7t (17.3», i7-2630QM, HD 6770M 1Gb, 8Gb RAM) |
Цитата Iven:
| просто достало, что где не спросишь все с умным лицом кидают ссылку на статью про дублирование » |
Умного человека это должно навести на мысль, что с вопросом что-то не так. И вместо того, чтобы копипастить его на разные форумы, он бы попробовал его переформулировать.
Цитата Iven:
| а задача проста — сменить sid на win 7 на нужный мне — все остальное темы не касается » |
Вы со стороны на себя посмотрите. Приходит человек на форум и ставит бессмысленную задачу. При этом не желает объяснять, зачем ему это нужно, и выражает уверенность в том, что никто не знает ответ (читай, вокруг дураки).
В общем, удачи вам в поиске решения
![]()
——-
Канал Windows 11, etc | Чат @winsiders
Как узнать SID пользователя, группы или компьютера по имени?

06.10.2022

itpro

Active Directory, PowerShell, Windows 10, Windows Server 2019

комментариев 10
SID (Security IDentifier) – это уникальный идентификатор, который присваивается пользователям, группам, компьютерам или другим объектам безопасности при их создании в Windows или Active Directory. Windows использует SID, а не имя пользователя для контроля доступа к различным ресурсам: сетевым папкам, ключам реестра, объектам файловой системы (NTFS разрешения), принтерам и т.д. В этой статье мы покажем несколько простых способов получить SID пользователя, группы или компьютера, и обратную процедуру – получить объект по известному 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 – локальные пользователи
В 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.
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 своей доменной учетной записи командой:

Получить 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 | 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): Но ее придется скачивать и устанавливать на каждый компьютер вручную.
Или просто, обрезав последние 4 символа RID и SID любого локального пользователя:
$user=(Get-LocalUser Administrator).sid
$user -replace «.$»

Важно, чтобы у каждого компьютера в домене был уникальный локальный 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
Параметр IncludeDeletedObjects позволяет искать по удаленным объектам в корзине Active Directory.

В нашем случае объект AD, который имеет данный SID, является компьютером (objectClass=computer).
Предыдущая статья Следующая статья
Смена SID при клонировании и массовом развёртывании
Привет, Хабр! Упомянутая в заголовке тема всё ещё порождает множественные дискуссии и недопонимание между системными администраторами. В своей статье я постараюсь ответить на следующие вопросы:
- Что такое SID и каких он бывает типов?
- Когда наличие двух и более машин с одинаковыми Machine SID будет порождать проблемы? Или, другими словами, когда всё-таки (не)нужно менять Machine SID?
- Что такое Sysprep и нужен ли Sysprep для клонирования/развёртывания?

В основу рассуждений была взята популярная статья Марка Руссиновича (доступна также на русском языке), которую довольно часто неправильно интерпретируют (судя по комментариям и «статьям-ответам»), что приводит к неприятным последствиям. Добро пожаловать под кат.
- Менять 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

08.06.2022

itpro

Windows 7, Windows Server 2008

комментариев 12
Недавно я уже писал, как проверить SID на Windows 7 и Windows Server 2008 R2, сегодня я расскажу вам о том, как изменить SID на Windows Server 2008 R2 и Windows 7 с помощью Sysprep. Ранее для изменения SID применялась утилита NewSID, однако сейчас ее использование е поддерживается
Microsoft, кроме того, использовать ее в новых ОС, типа Windows Server 2008 R2, просто опасно. Поэтому для изменения SID вашего ПК лучше всего использовать sysprep, использовать эту утилиту достаточно просто, и далее я опишу всю последовательность шагов.
Работу Sysprep я протестировал в Windows Server 2008 R2, а также в Windows7.
Во-первых, нажмите кнопку Пуск->Run, наберите Sysprep и нажмите OK.

В результате откроется папка , расположенная в каталоге c:\Windows\System32. Запустите приложение sysprep.exe.

Перед вами появится окно System Preparation Tool 3.14. В качестве действия по очистке системы выберите Enter System Out-of-Box Experience (OOBE) . Если вы хотите изменить SID, то выберите опцию Generalize (внимание: она не выбрана по умолчанию). В качестве опции отключении (Shutdown Options) выберите Reboot
(перезагрузка).

Выполнение процедуры sysprep займет некоторое время.

После перезагрузки вам придется указать ряд настроек, такие как страна, регион, время, дата и тип раскладки клавиатуры.

Кроме того, вам придется принять (ну или отклонить ) лицензионное соглашение (EULA). Это все. После загрузки в консоли Server Manager вы можете убедиться, что все настройки изменились.

Теперь вы можете воспользоваться утилитой PsGetSid для того, чтобы узнать текущий новый SID вашей операционной системы.
Предыдущая статья Следующая статья
Читайте далее в разделе Windows 7 Windows Server 2008
Папки на флешке стали ярлыками
BOOTMGR is compressed в Windows 7. Что делать?
Восстанавливаем языковую панель в Windows 7