Ідентифікування користувачів в ОС Windows здійснюється не по іменах, а по спеціальних ідентифікаторів безпеки, або Security Identifier - SID. Рішення задачі визначення SID обраного користувача не вимагає використання додаткового програмного забезпечення і здійснюється стандартними засобами системи.
Інструкція
Викличте головне системне меню, натиснувши кнопку «Пуск», і перейдіть в діалог «Виконати». Надрукуйте regedit в рядку «Відкрити» та підтвердіть запуск утиліти редактора реєстру, натиснувши кнопку OK. Розкрийте гілку
HKEY_LOCAL_MACHINE Software Microsoft WindowsNT CurrentVersion ProfileList
і знайдіть всі ідентифікатори користувачів (SID). Перейдіть в ключ ProfikeImagePath і знайдіть відповідне SID значення імені користувача. Завершіть роботу утиліти редактора реєстру.
HKEY_LOCAL_MACHINE Software Microsoft WindowsNT CurrentVersion ProfileList
і знайдіть всі ідентифікатори користувачів (SID). Перейдіть в ключ ProfikeImagePath і знайдіть відповідне SID значення імені користувача. Завершіть роботу утиліти редактора реєстру.
Зворотна операція, коли відомий SID користувача і потрібно визначити ім'я його облікового запису, може бути виконана з використанням команди reg.exe. У цьому випадку синтаксис команди виглядає як:
reg query HKEY_LOCAL_MACHINE Software Microsoft WindowsNT CurrentVersion ProfileList ProfileImagePath.
reg query HKEY_LOCAL_MACHINE Software Microsoft WindowsNT CurrentVersion ProfileList ProfileImagePath.
Скористайтеся вбудованої утилітою GetSID, що дозволяє визначити унікальний ідентифікатор обраного користувача. Синтаксис команди виглядає як:
drive: > getsid
Usage: getsid server1 account server2 account.
drive: > getsid
Usage: getsid server1 account server2 account.
Альтернативним методом програмного отримання SID потрібного користувача може стати використання класу SecurityIdentifier в .NET Framework 2.0. У цьому випадку ідентифікатор може відображатися як рядок, масив байтів або комбінація значень WellKnownSidType і SID домена. Додатковою умовою отримання потрібного результату є звернення до класу WindowsIdentity. Синтаксис такої команди виглядає як:
using System;
using System.Security.Principal;
namespace GetSID
{
class Program
{
static void Main (string [] args)
{
WindowsIdentity wid = Windowsidentity.GetCurrent ();
Console.WriteLine (wid.Name + SID is 0, wid.User.Value);
Console.Read ();
}?}?}.
using System;
using System.Security.Principal;
namespace GetSID
{
class Program
{
static void Main (string [] args)
{
WindowsIdentity wid = Windowsidentity.GetCurrent ();
Console.WriteLine (wid.Name + SID is 0, wid.User.Value);
Console.Read ();
}?}?}.