Windows или смены sid

Windows или смены sid

Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. В прошлый раз мы с вами установили домен Active Directory на Windows Server 2019. Одним из краеугольных понятий в AD является идентификатор безопасности компьютера SID, о нем и пойдет речь. Мы разберем, какие они бывают у сервера и рабочей станции, а так же научимся определять SID компьютера, буквально за минуту.

Сколько у компьютера SID-ов?

О том, что такое SID у пользователя, я уже рассказывал. SID — это уникальное имя (буквенно-цифровая символьная строка), которое используется для идентификации объекта, такого как пользователь или компьютер в сети систем NT. Windows предоставляет или запрещает доступ и права доступа к ресурсам на основе ACL, которые используют SID для уникальной идентификации компьютеров и их членства в группах. Когда компьютер запрашивает доступ к ресурсу, его ACL проверяет SID компьютера, чтобы определить, разрешено ли этому компьютеру выполнять это действие или нет. Схематично выглядит вот так.

Существует два типа SID у компьютера:

  • Первый тип, это когда рабочая станция или сервер не являются членом домена Active Directory
  • Второй тип, это когда компьютер входит в домен Active Directory

В обоих случаях у вас будет два абсолютно разных SID. Первый дескриптор безопасности у вас генерируется при установке системы, второй если вы вводите его в домен AD. И так, у меня есть тестовый домен root.pyatilistnik.org. Есть клиентская станция с Windows 10 1803. Для того, чтобы вам показать разницу и оба SID идентификатора на моей тестовой Windows 10, мы воспользуемся утилитой Марка Русиновича PsGetSid из инструментария Sysinternals (Скачать PsGetSid можно по ссылке https://docs.microsoft.com/en-us/sysinternals/downloads/psgetsid). Распаковываете архив с утилитой, открываете командную строку от имени администратора и переходите с помощью cd в каталог с утилитой PsGetSid.

Первым делом я выведу имя компьютера, через команду hostname. В моем примере, это W10-CL01.

Далее я выведу локальный SID компьютера, через утилиту PsGetSid:

В итоге я получил SID for W10-CL01\w10-cl01:S-1-5-21-7706586-876249769-275126362. Обратите внимание, что перед идентификатором безопасности идет имя компьютера, это сразу говорит, что он локальный.

И команда указанная выше, показывает вам доменный SID рабочей станции. SID for ROOT\w10-cl01$:S-1-5-21-233550040-578987154-4094747311-1602. Обратите внимание, что перед идентификаторам идет имя домена ROOT\.

Нюансы идентификаторов безопасности на рабочих станциях

Некоторое время назад, Марк Руссинович, очень известный человек в мире Microsoft, написал замечательную статью, про мифы дублирования SID, где показал на практике свои мысли, но после прочтения статьи у некоторых людей оставалась в голове путаница или вопросы, \ бы хотел немного уточнить по статье (Ссылка на нее https://blogs.technet.microsoft.com/mark_russinovich/2009/11/15/sid/).

Предположим, что вы клонируете нужную вам виртуальную машину или хост. Если вы не обезличиваете систему, с помощью Sysprep, то у вас все полученные клоны систем, будут иметь один локальный SID компьютера. Если мы говорим про окружение в виде рабочей группы в локальной сети, то ни каких проблем с доступом или конфликтом с доступом к ресурсам вы не увидите. Но вот в случае с доменным SID, такое не получится, он должен быть уникальным в пределах Active Directory, в противном случае, у вас будут конфликты между двумя объектами. Убедитесь, что после клонирования и обезличивания у вас разные SID, полученные от мастера RID.

Читайте также:  Windows prefetch chrome exe

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

Методы определения сида компьютера

  • Первый метод я вам уже показал. он заключается в использовании утилиты PsGetSid
  • Второй метод, это использование командной строки, с помощью утилиты dsquery. Получать мы таким методом будем доменный SID у сервера или рабочей станции:

dsquery computer — name «Имя компьютер» | dsget computer — SID

Хочу отметить, что данную команду вы должны выполнять либо на контроллере домена или же на рабочей станции, где установлены консоли администрирования и утилиты из пакета RSAT.

  • Через скриптик VBS. Вы копируете код представленный ниже или скачиваете уже готовый файл у меня, только лишь потом отредактировав его и изменив имя на свое. После чего у вас будет запрошен локальный SID компьютера. Напоминаю, что у всех встроенных групп или учетных записей, начало их идентификатора безопасности состоит из полного SID компьютера с добавлением своего дополнительного номера.

  • Куда же без PowerShell в нем можно делать, что угодно. Вот пример кода дающего локальный идентификатор безопасности у рабочей станции:

тут так же будет запрошен SID учетной записи «Администратор». Если компьютер доменный, то нам поможет командлет Get-ADComputer. Запускаем оснастку PowerShell и вводим команду:

Get-ADComputer W10-CL01 -prop sid

Как видите методов очень много. Видел я метод и получения сида из реестра Windows, в ветке

Windows или смены sid

Sysprep — Утилита системной подготовки Microsoft Windows к развертыванию. Sysprep первоначально был представлен для использования с Windows NT 4.0

Примечание: Изменение SID вашего железа может помочь вам продолжать использовать программы, которые требуют ввода лицензионного ключа. Чтобы не тратить время на поиски ключа в интернете, просто смените SID и пользуйтесь платной программой ещё 30 или более дней.

Ранее для изменения SID применялась утилита NewSID, однако сейчас ее использование не поддерживается Microsoft, кроме того, использовать ее в новых ОС, типа Windows Server 2008 R2, просто опасно. Поэтому для изменения SID вашего ПК лучше всего использовать sysprep, использовать эту утилиту достаточно просто, и далее я опишу всю последовательность шагов.

Чтобы запустить утилиту, нажмите сочетание клавиш Win + R и напишите в поле ввода: sysprep

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

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

Читайте также:  Как переустановить компоненты windows

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

Как изменить SID в Windows 7 и Windows Server 2008 R2 с помощью sysprep

Недавно я уже писал, как проверить 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 вашей операционной системы.

Как изменить SID на Windows 7, Windows Server 2008 R2 и Windows Server 2012 R2

Иногда при работе с виртуальными машинами, а в частности при их клонировании возникает необходимость смены SID клонированной системы. Присвоить системе новый SID можно с помощью утилиты sysprep входящую в состав Windows.

Рассмотрим на примере получения нового SID на Windows Server 2012 R2. Посмотреть текущий SID можно с помощью утилиты psgetsid (скачать можно с оф.сайта или тут), у меня имеются две системы с одинаковыми SID:

В системе на которой нужно сменить SID, нажимаем Alt+R и вбиваем sysprep. Жмем ОК.

Откроется папка расположения утилиты sysprep. Запускаем файл sysprep.exe. В открывшемся окне, в пункте System Cleaup Action, выбираем Enter System Out-of-box Experience (OOBE) и отмечаем галочкой пункт Generalize (для того чтобы с генерировать новый SID идентификатор). В пункте Shutdown Options выбираем Reboot. Нажимаем ОК.

Читайте также:  Обои для windows темная тема

Запустится процедура очистки системы и так же в процессе будет присвоен новый SID.

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

Вот таким нехитрым и быстрым способом можно легко сменить в системе идентификатор SID.

Как сбросить SID у системы Windows

Что важно если система (Windows) было клонирована средствами Virtualbox. При попытке ввода в домен Вы можете получить сообщение вида:

« The domain join cannot be completed because the SID of the domain you attempted to join was identical to the SID of this machine. This is a symptom of an improperly cloned operating system install. You should run sysprep on this machine in order to generate a new machine SID »

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

На Windows Server 2012 R2 — Win + X → Command Prompt (Admin)

C:\Windows\system32>cd Sysprep

C:\Windows\System32\Sysprep>sysprep /oobe /generalize /shutdown

[stextbox style=»color: #ff00ff;»>На заметку: На других линейках операционной системы Windows все тоже самое, главное запустить консоль командной строки с правами Администратора.[/stextbox]

После исполнения данной команды система выключиться, потребуется ее включить и необходимо будет указать текущую страну или регион (« Country or region »), используемый язык (« App language »), раскладку клавиатуры (« Keyboard layout »), согласиться с лицензионный соглашение, задать пароль на учетную запись Администратора, система после уйдет в перезагрузку, а когда загрузиться то будет полностью обнуленной, как будто Вы ее только что поставили (USB Flash Drive, DVD/CD ROM) из образа (и не будет клонированной). Я делаю после этого (я решил задокумментировать все это столкнувшись в очередной раз на Windows Server 2012 R2 Standard, а потому и действия сочетаний клавиш привожу относительно ей):

Win + X → Command Prompt (Admin)

C:\Windows\system32>net user Administrator | findstr /C:expires

Account expires Never

Password expires 11/6/2018 8:42:46 PM

C:\Windows\system32>wmic useraccount where name=’Administrator’ set passwordexpires=FALSE

Updating property(s) of ‘\\WIN-ENBQ1C4A7CM\ROOT\CIMV2:Win32_UserAccount.Domain=»WIN-ENBQ1C4A7CM»,Name=»Administrator»‘

C:\Windows\system32>net user Administrator | findstr /C:expires

Account expires Never

Password expires Never

Property(s) update successful.

А раз так, то и использовать ее можно хоть в домене, хоть где либо еще.

Не стоит об этом забывать и тратить драгоценное время если моделируете различные ситуации под Virtualbox, ESXi перед тем как все сделать на боевом окружении.

Итого заметка работоспособна, на этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.

Используйте прокси ((заблокировано роскомнадзором, используйте vpn или proxy)) при использовании Telegram клиента:

Поблагодари автора и новые статьи

будут появляться чаще 🙂

Карта МКБ: 4432-7300-2472-8059
Yandex-деньги: 41001520055047

Большое спасибо тем кто благодарит автора за практические заметки небольшими пожертвованиями. С уважением, Олло Александр aka ekzorchik.

Оцените статью