Как получить SID из ключа реестра

Тема в разделе "WASM.WIN32", создана пользователем eugenevs, 5 май 2006.

  1. eugenevs

    eugenevs New Member

    Публикаций:
    0
    Регистрация:
    4 май 2006
    Сообщения:
    6
    Привет.

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

    Как я понимаю надо получить SID из ключа Security (тип REG_BINARY)

    Кто нибудь сталкивался с этим?



    Спасибо.
     
  2. eugenevs

    eugenevs New Member

    Публикаций:
    0
    Регистрация:
    4 май 2006
    Сообщения:
    6
    Или как определить этот аккаунт через SCM, в msdn есть структура, но она будет только начиная с висты.

    Неужели нет способа определить аккаунт не запущеного сервиса?
     
  3. NullSessi0n

    NullSessi0n New Member

    Публикаций:
    0
    Регистрация:
    20 янв 2006
    Сообщения:
    322
    QueryServiceConfigA/W, в параметре с типом QUERY_SERVICE_CONFIG в поле lpServiceStartName:

    lpServiceStartName

    Points to a null-terminated string. If the service type is SERVICE_WIN32_OWN_PROCESS or SERVICE_WIN32_SHARE_PROCESS, this name is the account name in the form of "DomainName\Username", which the service process will be logged on as when it runs. If the account belongs to the built-in domain, ".\Username" can be specified. If NULL is specified, the service will be logged on as the LocalSystem account.



    If the service type is SERVICE_KERNEL_DRIVER or SERVICE_FILE_SYSTEM_DRIVER, this name is the Windows NT driver object name (that is, \FileSystem\Rdr or \Driver\Xns) which the input and output (I/O) system uses to load the device driver. If NULL is specified, the driver is run with a default object name created by the I/O system based on the service name.

    Если нужно SID, то LookupAccountName и из имени получаешь SID. Про ключ Security не знаю, у меня ни одна служба его не имеет.
     
  4. eugenevs

    eugenevs New Member

    Публикаций:
    0
    Регистрация:
    4 май 2006
    Сообщения:
    6
    СПАСИБО!

    не обратил внимание на lpServiceStartName, думал что это название сервиса.