Windows Vista ...

Общие вопросы, не зависящие от языка реализации.

Модераторы: Duncon, Hawk, Romeo, Eugie

Ответить
Alezis
Сообщения: 98
Зарегистрирован: 16 авг 2004, 01:10
Откуда: Минск
Контактная информация:

Привет всем.
Работаю под Windows Vista с Windows Parental Control. Я хочу просмотреть все events , относящиеся к Parental Control. Например я хочу получить все events вида WPCEVENT_WEB_URLVISIT и прочие для одного из standart user. Я знаю что Vista пишет эти events в %system root%\System32\winevt\Logs\Microsoft-Windows-ParentalControls%4Operational.evtx, поэтому я использую EvtOpenLog для доступак этому файлу. Сначала я получал access is denied, но затем я использовал не путь к файлу а chanel Microsoft-Windows-ParentalControls/Operational и в итоге у меня всё заработало но только для администратора как только я запускаю код для standart user вываливается ошибка по GetLastError() ERROR_ACCESS_DENIED( Access is denied.) Кроме того добавив standart user во все группы, включая Event Log Reader, кроме Administrators ничего не изменилось - под администратором работает под standart user нет.
Затем я попробовал использовать EvtSubscribe. Тоже столкнулся с той же проблемой. Под администратором всё работает как в примере из SDK но под standart user нет.В тоже время некоторые другие chanels предоставляют доступ (Application, System). Вот код для EvtSubscribe:

Код: Выделить всё

         EVT_HANDLE hSub = NULL;   // Handle to the event subscriber.
         wchar_t *szChannel = L"Microsoft-Windows-ParentalControls/Operational";   // Channel.
            wchar_t *szQuery = L"*";   // XPATH Query to specify which events to subscribe to.

        wprintf(L"Subscribing to all  events from the \n %s channel... \n",szChannel);
        wprintf(L"NOTE: Hit 'Q' or 'q' to stop the event subscription\n");

    // Register the subscription.
    hSub = EvtSubscribe(  NULL,                                                                            //Session
        NULL,                    // Used for pull subscriptions.
        szChannel,               // Channel.
        szQuery,                 // XPath query.
        NULL,                    // Bookmark.
        NULL,                    // CallbackContext.
        (EVT_SUBSCRIBE_CALLBACK) SubscriptionCallBack,  // Callback.
        EvtSubscribeToFutureEvents   // Flags.
        );

    if( !hSub )
    {
        wprintf(L"Couldn't Subscribe to Events!.");
                       ErrorDisplay( GetLastError());
        return;
    }
    else
    {
        // Keep listening for events until 'q' or 'Q' is hit.
        WCHAR ch = L'0';
        do
        {
            ch = _getwch();
            ch = towupper( ch );
            Sleep(100);
        } while( ch != 'Q' );
    }    

    // Close the subscriber handle.
    EvtClose(hSub);
В итоге хотелось бы знать как получить доступ к каналу Microsoft-Windows-ParentalControls/Operational под standart user.
Ответить