首页 > 开发技术 > Windows漏洞检测的一些资料

Windows漏洞检测的一些资料

2010年2月2日 发表评论 阅读评论

独孤求败说的: wsus,wuapi

网上找到的一段代码

我用wuapi来获取更新,如果连接windows网站是可以获取补丁列表并下载更新
但如果我用代码来连接WSUS内网补丁服务服务器,却会出错

谁知道wuapi是否可以连接WSUS服务器?应该如何连接呢?
我的注册表配置如下:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate]
“WUServer”=”http://132.132.60.169
“WUStatusServer”=”http://132.132.60.169

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]
“UseWUServer”=dword:00000001

下面是代码,执行到Search会失败

IUpdateSession* lpUpdateSession;
ret = CoCreateInstance(CLSID_UpdateSession, NULL, CLSCTX_INPROC_SERVER, IID_IUpdateSession, (LPVOID*)&lpUpdateSession);
if(FAILED(ret) || NULL == lpUpdateSession)
{
throw -1;
}

IUpdateSearcher *lpUpdateSearcher;
ret = lpUpdateSession->CreateUpdateSearcher(&lpUpdateSearcher);
if(FAILED(ret) || NULL == lpUpdateSearcher)
{
lpUpdateSession->Release();
throw -2;
}

ServerSelection st;
if ( g_bWindowsSite )
{
st = ssWindowsUpdate;
}
else
{
st = ssManagedServer;
}
ISearchResult *lpInstalledUpdatesSearch;
lpUpdateSearcher->put_ServerSelection(st);
if (g_bWindowsSite)
{
ret = lpUpdateSearcher->put_Online(VARIANT_TRUE);
}
else
{
//下面三行不确定,调用与否都会出错
IWebProxy* proxy = NULL ;
lpUpdateSession->get_WebProxy(&proxy);
proxy->put_AutoDetect(VARIANT_TRUE);
lpUpdateSearcher->put_Online(VARIANT_TRUE);
}
ret = lpUpdateSearcher->Search(bstr_t(“IsInstalled = 0 and Type=\’Software\’”), &lpInstalledUpdatesSearch);
if(FAILED(ret) || NULL == lpInstalledUpdatesSearch)
{
lpUpdateSearcher->Release();
lpUpdateSession->Release();
throw -3;
}

有人回复的微软网站的文档

http://technet.microsoft.com/en-us/wsus/default.aspx

有时间倒可以看看。

分类: 开发技术 标签: , 1,195 views
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.