Windows Vista ...
Добавлено: 12 июн 2007, 02:34
Привет всем.
Работаю под 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:
В итоге хотелось бы знать как получить доступ к каналу Microsoft-Windows-ParentalControls/Operational под standart user.
Работаю под 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);