Привет. Вопрос вот в чем, нужно определить аккаунт, от которого запускается сервис из реестра. Как я понимаю надо получить SID из ключа Security (тип REG_BINARY) Кто нибудь сталкивался с этим? Спасибо.
Или как определить этот аккаунт через SCM, в msdn есть структура, но она будет только начиная с висты. Неужели нет способа определить аккаунт не запущеного сервиса?
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 не знаю, у меня ни одна служба его не имеет.