Wmi подключение к Winxp Sp2

  • Автор темы Автор темы KmeT
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
K

KmeT

Вообщем не получается подкулючить WMI к удаленной машине. Хотя как бы все делал по мсдн. Может не учел какие нюансы, это мой первый опыт испоьзования данной технологии

Вводные: WinXP SP2, отключеный встроенный браундмаузер, используется логин(stUser) и пароль(stPass) пользователя входящего в группу администаторов, пароль не пустой. (stServ)-удаленная машина

Код:
bool CPrcMng::Connect(const BSTR stServ, const BSTR stUser, const BSTR stPass)
{

if (!m_bInitSec)
{
if (!InitSecurity()) return false;
}

BSTR stNetR[MAX_PATH]={0};
BSTR stUserBuf[MAX_PATH]={0};
if (!stServ)
{
wcscpy((BSTR)stNetR, NAMESPACE);
wcscpy((BSTR)stUserBuf, stUser);
}
else
{
wcscpy((BSTR)stNetR, L"\\\\");
wcscat((BSTR)stNetR, stServ);
wcscat((BSTR)stNetR, L"\\");
wcscat((BSTR)stNetR, NAMESPACE);

wcscpy((BSTR)stUserBuf, stServ);
wcscat((BSTR)stUserBuf, L"\\");
wcscat((BSTR)stUserBuf, stUser);
}


if (m_bConnected)
{
m_cWSvc.Release();
m_bConnected=false;
}
IWbemLocator
HRESULT hres=m_cWL->ConnectServer((BSTR)stNetR, (BSTR)stUserBuf, stPass, 
    0,            // Locale. NULL indicates current locale       
    NULL,          // Security flags.
    0,            // Authority (e.g. Kerberos)    
    0,            // Context object (IWbemContext), if required 
    &m_cWSvc         // Out: pointer to IWbemServices proxy
);

if (FAILED(hres)) return false;
m_bConnected=true;

 hres = CoSetProxyBlanket(
   m_cWSvc,           // Indicates the proxy to set
   RPC_C_AUTHN_WINNT,      // RPC_C_AUTHN_xxx authentication service
   RPC_C_AUTHZ_NONE,      // RPC_C_AUTHZ_xxx authorization service
   NULL,            // Server principal name 
   RPC_C_AUTHN_LEVEL_CALL,   // RPC_C_AUTHN_LEVEL_xxx authentication level 
   RPC_C_IMP_LEVEL_IMPERSONATE, // RPC_C_IMP_LEVEL_xxx impersonation level
   NULL,            // client identity
   EOAC_NONE          // proxy capabilities 
 );	

if (FAILED(hres))
{
 m_bConnected=false;
 m_cWSvc.Release();
}
return m_bConnected;
}

bool CPrcMng::InitSecurity()
{
 HRESULT hres = CoInitializeSecurity(
   NULL, 
   -1,             // COM negotiates authentication service
   NULL,            // Authentication services
   NULL,            // Reserved
   RPC_C_AUTHN_LEVEL_PKT,  // Default authentication (recommended)
   RPC_C_IMP_LEVEL_IMPERSONATE, // Default Impersonation (recommended)
   NULL,            // Authentication info
   EOAC_NONE,          // Additional capabilities 
   NULL             // Reserved
   );

          
if (FAILED(hres))	m_bInitSec=false;
else m_bInitSec=true;

return m_bInitSec;
}
 
m_cWL->ConnectServer(......), где m_cWL -- IWbemLocator, возвращает ACCESSDENIED
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!