Re[3]: Как програмно сотворить то, что мутит dcomcnfg
Здравствуйте, 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 чего-нибудь говорит?
Делай что должно, и будь что будет
Пока на собственное сообщение не было ответов, его можно удалить.