首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Windows安全中心API

Windows安全中心API
EN

Stack Overflow用户
提问于 2011-10-11 11:41:10
回答 2查看 1.6K关注 0票数 4

我想访问Windows安全中心来检查几个安全特性的状态。

示例:

  • 防火墙状态
  • Windows是否最新
  • 计算机是否有病毒保护

我怎么能这么做?

2003,XP,vista,7

EN

回答 2

Stack Overflow用户

发布于 2011-10-11 11:50:38

在Vista+上,您可以通过WscGetSecurityProviderHealth获得它的状态摘要。

票数 4
EN

Stack Overflow用户

发布于 2022-04-28 10:26:58

代码语言:javascript
运行
复制
#include <Windows.h>
#include <string>
#include <iostream>
#include <Wscapi.h>
#pragma comment(lib, "Wscapi.lib")
using namespace std;

string printStatus(WSC_SECURITY_PROVIDER_HEALTH status)
{
  switch (status)
  {
  case WSC_SECURITY_PROVIDER_HEALTH_GOOD: return "GOOD";
  case WSC_SECURITY_PROVIDER_HEALTH_NOTMONITORED: return "NOTMONITORED";
  case WSC_SECURITY_PROVIDER_HEALTH_POOR: return "POOR";
  case WSC_SECURITY_PROVIDER_HEALTH_SNOOZE: return "SNOOZE";
  default: return "Status Error";
  }
}

void getHealth()
{
  WSC_SECURITY_PROVIDER_HEALTH health;
  if (S_OK == WscGetSecurityProviderHealth(WSC_SECURITY_PROVIDER_FIREWALL, &health))
    cout << "FIREWALL:          " << printStatus(health) << endl;
  if (S_OK == WscGetSecurityProviderHealth(WSC_SECURITY_PROVIDER_AUTOUPDATE_SETTINGS, &health))
    cout << "AUTOUPDATE:        " << printStatus(health) << endl;
  if (S_OK == WscGetSecurityProviderHealth(WSC_SECURITY_PROVIDER_ANTIVIRUS, &health))
    cout << "ANTIVIRUS:         " << printStatus(health) << endl;
  if (S_OK == WscGetSecurityProviderHealth(WSC_SECURITY_PROVIDER_ANTISPYWARE, &health))
    cout << "ANTISPYWARE:       " << printStatus(health) << endl;
  if (S_OK == WscGetSecurityProviderHealth(WSC_SECURITY_PROVIDER_INTERNET_SETTINGS, &health))
    cout << "INTERNET SETTINGS: " << printStatus(health) << endl;
  if (S_OK == WscGetSecurityProviderHealth(WSC_SECURITY_PROVIDER_USER_ACCOUNT_CONTROL, &health))
    cout << "UAC:               " << printStatus(health) << endl;
  if (S_OK == WscGetSecurityProviderHealth(WSC_SECURITY_PROVIDER_SERVICE, &health))
    cout << "SERVICE:           " << printStatus(health) << endl;
  if (S_OK == WscGetSecurityProviderHealth(WSC_SECURITY_PROVIDER_ALL, &health))
    cout << "ALL:               " << printStatus(health) << endl;

}

void main()
{
  getHealth();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7725464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档