Re[3]: Как програмно сотворить то, что мутит dcomcnfg
От: SergH Россия  
Дата: 24.07.03 08:03
Оценка: 1 (1)
Здравствуйте, x2003, Вы писали:

X>Да. Я вроде как этими функциями и пользуюсь. Конкретно:


X>DWORD

X>SetAccountRights (
X> LPTSTR User,
X> LPTSTR Privilege
X> )
X>{
X> LSA_HANDLE policyHandle;
X> LSA_OBJECT_ATTRIBUTES objectAttributes;
X> PSID principalSID;
X> LSA_UNICODE_STRING lsaPrivilegeString;
X> WCHAR widePrivilege [256];

X>#ifdef _UNICODE

X> lstrcpy (widePrivilege, Privilege);
X>#else
X> STR2UNI (widePrivilege, Privilege);
X>#endif

X> memset (&objectAttributes, 0, sizeof(LSA_OBJECT_ATTRIBUTES));

X> if (LsaOpenPolicy (NULL,
X> &objectAttributes,
X> POLICY_CREATE_ACCOUNT | POLICY_LOOKUP_NAMES,
X> &policyHandle) != ERROR_SUCCESS)
X> {
X> return GetLastError();
X> }

X> GetPrincipalSID (User, &principalSID);


X> lsaPrivilegeString.Length = (USHORT) (wcslen (widePrivilege) * sizeof (WCHAR));

X> lsaPrivilegeString.MaximumLength = (USHORT) (lsaPrivilegeString.Length + sizeof (WCHAR));
X> lsaPrivilegeString.Buffer = widePrivilege;

X> if (LsaAddAccountRights (policyHandle,

X> principalSID,
X> &lsaPrivilegeString,
X> 1) != ERROR_SUCCESS)
X> {
X> free (principalSID);
X> LsaClose (policyHandle);
X> return GetLastError();
X> }

X> free (principalSID);

X> LsaClose (policyHandle);

X> return ERROR_SUCCESS;

X>}

Похоже на правду.

X>Причем как привилегию беру SeBatchLogonRight.


А разьве не SeServiceLogonRight?

X>Когда хочу пустить сервис мне говорят. Logon failure.


А Event Log чего-нибудь говорит?
Делай что должно, и будь что будет
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.