Общие сведения об идентификаторах безопасности Windows
Каждой учетной записи пользователя в вашей системе автоматически назначается Windows SID (идентификатор безопасности). SID используются для всех объектов, используемых в компьютерной системе, то есть SID назначается компьютеру, учетным записям домена, пользователям и группам безопасности. Удобочитаемые имена, соответствующие SID, призваны упростить процесс администрирования системы. Например, вы можете изменить имя пользователя, но SID не изменится. Поэтому вам не нужно беспокоиться о просмотре различных списков управления доступом, чтобы обновить их для нового имени, поскольку базовый SID не изменился.
SID — это числовые значения различной длины. Они состоят из номера редакции структуры, значения авторитетного идентификатора и переменного числа значений вспомогательных полномочий. Значения субавторитета предоставляют средства, с помощью которых Windows может создавать уникальные идентификаторы безопасности на основе общего базового идентификатора безопасности.
От Sysinternals есть хороший бесплатный инструмент под названием PsGetSid, который можно получить на этом сайте:
http://technet.microsoft.com/en-us/sysinternals/bb897417.aspx
Когда вы запустите PsGetSid без параметров, вы получите SID текущего компьютера:
C:\>PsGetSid PsGetSid v1.44 - Translates SIDs to names and vice versa Copyright (C) 1999-2008 Mark Russinovich Sysinternals - www.sysinternals.com SID for \\DYSERT-PC: S-1-5-21-205299875-3125232665-432278398
По отображаемому номеру вы можете определить различные части SID; они разделены тире. В этом случае SID начинается с «S-1-5», что указывает номер версии структуры (1) и значение авторитетного идентификатора (5). Остальные числа — опять же, разделенные тире — это значения субавторитета.
Windows поставляется с некоторыми встроенными учетными записями, поэтому им уже назначены идентификаторы безопасности до того, как учетная запись пользователя будет добавлена. Среди встроенных учетных записей есть учетные записи администратора и гостя. Запуск PsGetSid для каждого из них показывает следующие назначения:
C:\>PsGetSid Administrator PsGetSid v1.44 - Translates SIDs to names and vice versa Copyright (C) 1999-2008 Mark Russinovich Sysinternals - www.sysinternals.com SID for Dysert-PC\Administrator: S-1-5-21-205299875-3125232665-432278398-500 C:\>PsGetSid Guest PsGetSid v1.44 - Translates SIDs to names and vice versa Copyright (C) 1999-2008 Mark Russinovich Sysinternals - www.sysinternals.com SID for Dysert-PC\Guest: S-1-5-21-205299875-3125232665-432278398-501
Как видите, Windows добавила номер к каждому идентификатору безопасности учетной записи (500 и 501), чтобы обеспечить их уникальность. Эти уникальные суффиксы называются относительными идентификаторами (RID). По мере добавления новых учетных записей идентификаторы RID начинаются с 1000 и при необходимости увеличиваются. Таким образом, запуск PsGetSid в учетной записи «Dysert» дает следующее:
C:\>PsGetSid Dysert PsGetSid v1.44 - Translates SIDs to names and vice versa
Copyright (C) 1999-2008 Mark Russinovich Sysinternals - www.sysinternals.com SID for Dysert-PC\Dysert: S-1-5-21-205299875-3125232665-432278398-1000
Чтобы убедиться, что этот SID связан с моим входом в систему, я могу использовать другой инструмент Sysinternals под названием LogonSession, доступный здесь:
http://technet.microsoft.com/en-us/sysinternals/bb896769.aspx
Вот результат работы инструмента:
C:\LogonSessions Logonsesions v1.21 Copyright (C) 2004-2010 Bryce Cogswell and Mark Russinovich Sysinternals - wwww.sysinternals.com [6] Logon session 00000000:00468835: User name: Dysert-PC\Dysert Auth package: NTLM Logon type: Interactive Session: 1 Sid: S-1-5-21-205299875-3125232665-432278398-1000 Logon time: 4/11/2014 3:20:29 AM Logon server: DYSERT-PC DNS Domain: UPN:
SID также назначаются группам. SID, назначенный группе администраторов, можно получить следующим образом:
C:\>PsGetSid \Administrators PsGetSid v1.44 - Translates SIDs to names and vice versa Copyright (C) 1999-2008 Mark Russinovich Sysinternals - www.sysinternals.com SID for \Administrators: S-1-5-32-544
Если по какой-то причине вы не хотите использовать инструмент PsGetSid, вы все равно можете получить информацию о SID из встроенной утилиты wmic. В командной строке введите «wmic useraccount получить имя, sid» (без кавычек). Появится следующий результат:
C:\wmic useraccount get name,sid Name SID Administrator S-1-5-21-205299875-3125232665-432278398-500 ASPNET S-1-5-21-205299875-3125232665-432278398-1003 Dysert S-1-5-21-205299875-3125232665-432278398-1000 Guest S-1-5-21-205299875-3125232665-432278398-501 SQLDebugger S-1-5-21-205299875-3125232665-432278398-1007
Этот совет (13106) применим к Windows 7, 8 и 10.