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

Тема в разделе "MS Visual C++", создана пользователем KmeT, 23 апр 2006.

Статус темы:
Закрыта.
  1. KmeT

    KmeT Гость

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

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

    Код (Text):
    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;
    }
     
  2. KmeT

    KmeT Гость

    m_cWL->ConnectServer(......), где m_cWL -- IWbemLocator, возвращает ACCESSDENIED
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей