Я регистрация для события создания объекта для класса «SMS_UpdateGroupAssignment» для мониторинга развертываний, фрагмент коды ниже:WMI события создания экземпляр не получили
_dhGCreation = SINGLETON (CWMIEventManager)->subscribeToObjectCreation (L"SMS_UpdateGroupAssignment", this);
void* CWMIEventManager::subscribeToObjectCreation (CComBSTR wmiClass, IWMIEventHandler* eh)
{
IUnsecuredApartment* pUnsecApp = NULL;
//IWbemUnsecuredApartment* pUnsecApp = NULL;
HRESULT hres = CoCreateInstance (CLSID_UnsecuredApartment,
NULL,
CLSCTX_LOCAL_SERVER,
IID_IUnsecuredApartment,
(void**)&pUnsecApp);
DWORD dwErr = GetLastError();
LOG_DEBUG_2("CoCreateInstance done, GetLastError = %d, HRESULT = %d", dwErr, hres);
CEventSink* pSink = new CCreationEventSink (eh);
pSink->AddRef();
LOG_DEBUG_0("pSink->AddRef");
IUnknown* pStubUnk = NULL;
LOG_DEBUG_1("pUnsecApp = %d", &pUnsecApp);
pUnsecApp->CreateObjectStub (pSink, &pStubUnk);
LOG_DEBUG_0("pUnsecApp->CreateObjectStub");
IWbemObjectSink* pStubSink = NULL;
pStubUnk->QueryInterface (IID_IWbemObjectSink,
(void **) &pStubSink);
LOG_DEBUG_0("pStubUnk->QueryInterface");
/*
* The ExecNotificationQueryAsync method will call
* EventSink::Indicate method when an event occurs
*/
CComBSTR query = L" SELECT * FROM __InstanceCreationEvent WITHIN 1 WHERE TargetInstance ISA '";
query += wmiClass + "'";
CW2A printstr(query);
// here smsProv is an instance to root/sms/site_<siteCode>
hres = smsProv->getWbemSvc()->ExecNotificationQueryAsync (
CComBSTR (L"WQL"),
query,
WBEM_FLAG_SEND_STATUS,
NULL,
pStubSink);
/* Check for errors.*/
if (FAILED(hres))
{
pUnsecApp->Release();
pStubUnk->Release();
pSink->Release();
pStubSink->Release();
return 0;
}
return (void*) pSink;
}
Когда эта регистрация происходит, я получаю следующее сообщение об ошибке в SMSProv.log :
Выполнить WQL = выбрать * из SMS_UpdateGroupAssignment ~ $$ < 02-14-2017 13: 59: 55.472-330> Выполнить SQL = выбрать все SMS_UpdateGroupAssignment.AssignmentID, SMS_UpdateGroupAssignment.LocaleID, SMS _UpdateGroupAssignment.AssignedUpdateGroup, SMS_UpdateGroupAssignment.AssignmentAction, SMS_UpdateGroupAssignment.Description, SMS_UpdateGroupAssignment.AssignmentID, SMS_UpdateGroupAssignment.AssignmentName, SMS_UpdateGroupAssignment.AssignmentType, SMS_UpdateGroupAssignment.Assignment_UniqueID, SMS_UpdateGroupAssignment.ContainsExpiredUpdates, SMS_UpdateGroupAssignment.CreationTime, SMS_UpdateGroupAssignment.DesiredConfigType, SMS_UpdateGroupAssignment.DisableMomAlerts, SMS_UpdateGroupAssignment.DPLocality, SMS_UpdateGroupAssignment. AssignmentEnabled, SMS_UpdateGroupAssignment.EnforcementDeadline, SMS_UpdateGroupAssignment.EvaluationSchedule, SMS_UpdateGroupAssignment.ExpirationTime, SMS_UpdateGroupAssignment.LastModificationTime, SMS_UpdateGroupAssignment.LastModifiedBy, SMS_UpdateGroupAssignment.LimitStateMessageVerbosity, SMS_UpdateGroupAssignment.LocaleID, SMS_UpdateGroupAssignment.LogComplianceToWinEvent ... ~ ~ ~ e: \ nts_sccm_release \ sms \ siteserver \ sdk_provider \ extnprov \ extproviderclassobject.cpp (2190) : ОШИБКА НА ИНДИКАТОРЕ - вероятно Отменено ~ ~ ~ $$ < 02-14-2017 13: 59: 55.667-330> ERROR ON INDICATE = (WBEM_E_CALL_CANCELLED) ~ $$ < 02-14-2017 13: 59: 55.669-330> Результаты возвращены: 170 из -1 ~ $$ < 02-14-2017 13: 59: 55.675-330 >
В чем может быть причина этого отказа?