Каждой учетной записи пользователя в вашей системе автоматически назначается идентификатор безопасности Windows (идентификатор безопасности). SID используются для всех объектов, используемых в компьютерной системе, то есть SID назначается машине, учетным записям домена, пользователям и группам безопасности. Удобочитаемые имена, соответствующие SID, призваны упростить процесс системного администрирования. Например, вы можете изменить имя пользователя, но SID не изменится. Поэтому вам не нужно беспокоиться о просмотре различных списков управления доступом, чтобы обновить их для нового имени, поскольку базовый SID не изменился.
SID – это числовые значения различной длины. Они состоят из номера редакции структуры, значения авторитетного идентификатора и переменного числа значений вспомогательных полномочий. Значения субавторитета предоставляют средства, с помощью которых Windows может создавать уникальные идентификаторы безопасности на основе общего базового идентификатора безопасности.
Существует хороший бесплатный инструмент от Sysinternals под названием PsGetSid, который можно получить с этого сайта:
http://technet.microsoft.com/en-us/sysinternals/bb897417.aspx
При запуске PsGetSid без параметров вы получите SID текущего компьютер:
C: > PsGetSidPsGetSid v1.44 - Преобразует SID в имена и наоборот Copyright (C) 1999-2008 Mark RussinovichSysinternals - www.sysinternals.comSID для \ DYSERT-PC: S- 1-5-21-205299875-3125232665-432278398
По отображаемому номеру вы можете определить различные части SID; они разделены тире. В этом случае SID начинается с «S-1-5», что указывает номер версии структуры (1) и значение авторитетного идентификатора (5). Остальные числа – опять же, разделенные дефисом – представляют собой значения подчиненных органов.
Windows поставляется с некоторыми встроенными учетными записями, поэтому им уже назначены идентификаторы безопасности до того, как учетная запись пользователя когда-либо будет добавлена. Среди встроенных учетных записей есть учетные записи администратора и гостя. Запуск PsGetSid для каждого из них показывает следующие назначения:
C: > PsGetSid AdministratorPsGetSid v1.44 - переводит SID в имена и наоборот Copyright (C) 1999-2008 Mark RussinovichSysinternals - www.sysinternals. comSID для Dysert-PC Administrator: S-1-5-21-205299875-3125232665-432278398-500C: > PsGetSid GuestPsGetSid v1.44 - переводит SID в имена и наоборот Copyright (C) 1999-2008 Mark RussinovichSysinternals - www. sysinternals.comSID для Dysert-PC Guest: S-1-5-21-205299875-3125232665-432278398-501
Как видите, Windows добавила номер к каждому SID учетной записи ( 500 и 501), чтобы гарантировать их уникальность. Эти уникальные суффиксы называются относительными идентификаторами (RID). По мере добавления новых учетных записей идентификаторы RID начинаются с 1000 и при необходимости увеличиваются. Таким образом, запуск PsGetSid в учетной записи «Dysert» дает следующее:
C: > PsGetSid DysertPsGetSid v1.44 - преобразует SID в имена и наоборот
Copyright (C ) 1999-2008 Марк Руссинович Syinternals - www.sysinternals. comSID для Dysert-PC Dysert: S-1-5-21-205299875-3125232665-432278398-1000
Чтобы убедиться, что этот SID связан с моим входом в систему, я могу использовать другой инструмент Sysinternals под названием LogonSession, доступный здесь:
http://technet.microsoft.com/en-us/sysinternals/bb896769.aspx
Вот результат работы инструмента :
C: LogonSessionsLogonsesions v1.21 Авторские права (C) 2004-2010 Брайс Когсвелл и Марк РуссиновичSysinternals - wwww.sysinternals.com [6] Сеанс входа в систему 00000000: 00468835: Имя пользователя: Dysert-PC Пакет Dysert Auth: NTLM Тип входа: Интерактивный сеанс: 1 Sid: S-1-5-21-205299875-3125232665-432278398-1000 Время входа: 4/11/2014 3:20:29 AM Сервер входа: DYSERT-PC DNS Домен: UPN:
SID также назначаются группам. SID, назначенный группе администраторов, можно получить следующим образом:
C: > PsGetSid AdministratorsPsGetSid v1.44 - переводит SID в имена и наоборот Copyright (C) 1999-2008 Mark RussinovichSysinternals - www.sysinternals.com SID для Administrators: S-1-5-32-544
Если по какой-то причине вы не хотите использовать инструмент PsGetSid, вы все равно можете получить информацию о SID. из встроенной утилиты wmic . В командной строке введите « wmic useraccount получить имя, sid » (без кавычек). Появится следующий вывод:
C: wmic useraccount получить имя, sidName SIDAdministrator S-1-5-21-205299875-3125232665-432278398-500ASPNET S-1-5-21-205299875- 3125232665-432278398-1003Dysert S-1-5-21-205299875-3125232665-432278398-1000Guest S-1-5-21-205299875-3125232665-432278398-501SQLDebugger S-1-5-21-205299875-3125232665-100-400-4000