(http://i1-news.softpedia-static.com/images/news2/The-Evolution-of-the-Windows-Vista-Security-Center-2.png)
Implementacion de Windows Security Center (WSC) en vb.net, cualquier error o sugerencia enviarlo por MP o Skype...
Ejemplo de Uso:
Dim avsStatus As WindowsSecurityCenter.WscSecurityProviderHealth = WindowsSecurityCenter.GetStatusOfSecurityProvider(WindowsSecurityCenter.WscSecurityProvider.WscSecurityProviderAntivirus)
Select Case avsStatus
Case WindowsSecurityCenter.WscSecurityProviderHealth.WscSecurityProviderHealthGood
MessageBox.Show("El estado del proveedor de seguridad es bueno y no necesita atención del usuario.")
Case WindowsSecurityCenter.WscSecurityProviderHealth.WscSecurityProviderHealthPoor
MessageBox.Show("El estado del proveedor de seguridad es deficiente y el equipo puede estar en riesgo.")
Case WindowsSecurityCenter.WscSecurityProviderHealth.WscSecurityProviderHealthSnooze
MessageBox.Show("El proveedor de seguridad está en estado suspendido. Snooze indica que WSC no está protegiendo activamente la computadora.")
End Select
Dim uacStatus As WindowsSecurityCenter.WscSecurityProviderHealth = WindowsSecurityCenter.GetStatusOfSecurityProvider(WindowsSecurityCenter.WscSecurityProvider.WscSecurityProviderUserAccountControl)
If uacStatus = WindowsSecurityCenter.WscSecurityProviderHealth.WscSecurityProviderHealthPoor Then
MessageBox.Show("El UAC se encuentra desactivado....")
End If
' ***********************************************************************
' Assembly : WinControl
' Author : fudmario
' Created : 12-21-2016
'
' Last Modified By : fudmario
' Last Modified On : 12-21-2016
' ***********************************************************************
' <copyright file="WindowsSecurityCenter.vb" company="DeveloperTeam">
' Copyright © 2016
' </copyright>
' <summary></summary>
' ***********************************************************************
Imports System.Runtime.InteropServices
Public NotInheritable Class WindowsSecurityCenter
<DebuggerNonUserCode>
Private Sub New()
End Sub
''' <summary>
''' Defines all the services that are monitored by Windows Security Center (WSC).
''' </summary>
''' <remarks>
''' <see href="https://msdn.microsoft.com/en-us/library/bb432509(v=vs.85).aspx"/>
''' </remarks>
<Flags>
Public Enum WscSecurityProvider As Integer
''' <summary>
''' The aggregation of all firewalls for this computer.
''' </summary>
WscSecurityProviderFirewall = 1
''' <summary>
''' The automatic update settings for this computer.
''' </summary>
WscSecurityProviderAutoupdateSettings = 2
''' <summary>
''' The aggregation of all antivirus products for this computer.
''' </summary>
WscSecurityProviderAntivirus = 4
''' <summary>
''' The aggregation of all anti-spyware products for this computer.
''' </summary>
WscSecurityProviderAntispyware = 8
''' <summary>
''' The settings that restrict the access of web sites in each of the Internet zones for this computer.
''' </summary>
WscSecurityProviderInternetSettings = 16
''' <summary>
''' The User Account Control (UAC) settings for this computer.
''' </summary>
WscSecurityProviderUserAccountControl = 32
''' <summary>
''' The running state of the WSC service on this computer.
''' </summary>
WscSecurityProviderService = 64
''' <summary>
''' None of the items that WSC monitors.
''' </summary>
WscSecurityProviderNone = 0
''' <summary>
''' All of the items that the WSC monitors.
''' </summary>
WscSecurityProviderAll =
WscSecurityProviderFirewall Or WscSecurityProviderAutoupdateSettings Or WscSecurityProviderAntivirus Or
WscSecurityProviderAntispyware Or WscSecurityProviderInternetSettings Or
WscSecurityProviderUserAccountControl Or
WscSecurityProviderService Or WscSecurityProviderNone
End Enum
''' <summary>
''' Defines the possible states for any service monitored by Windows Security Center (WSC).
''' </summary>
''' <remarks>
''' <see href="https://msdn.microsoft.com/en-us/library/bb432510(v=vs.85).aspx"/>
''' </remarks>
<Flags>
Public Enum WscSecurityProviderHealth As Integer
''' <summary>
''' The status of the security provider category is good and does not need user attention.
''' </summary>
WscSecurityProviderHealthGood
''' <summary>
''' The status of the security provider category is not monitored by WSC.
''' </summary>
WscSecurityProviderHealthNotmonitored
''' <summary>
''' The status of the security provider category is poor and the computer may be at risk.
''' </summary>
WscSecurityProviderHealthPoor
''' <summary>
''' The security provider category is in snooze state. Snooze indicates that WSC is not actively protecting the computer.
''' </summary>
WscSecurityProviderHealthSnooze
''' <summary>
''' The status of the security provider category is unknown
''' </summary>
WscSecurityProviderHealthUnknown
End Enum
''' <summary>
''' Gets the aggregate health state of the security provider categories represented by the specified <see cref="WscSecurityProvider"/> enumeration values.
''' </summary>
''' <param name="providers ">One or more of the values in the <see cref="WscSecurityProvider"/> enumeration. To specify more than one value, combine the individual values by performing a bitwise OR operation.</param>
''' <param name="pHealth ">A pointer to a variable that takes the value of one of the members of the <see cref="WscSecurityProviderHealth"/> enumeration. If more than one provider is specified in the Providers parameter, the value of this parameter is the health of the least healthy of the specified provider categories.</param>
''' <returns>Returns S_OK if the function succeeds, otherwise returns an error code. If the WSC service is not running, the return value is always S_FALSE and the pHealth out parameter is always set to WSC_SECURITY_PROVIDER_HEALTH_POOR.</returns>
''' <remarks>
''' <see href="https://msdn.microsoft.com/en-us/library/bb432506(v=vs.85).aspx"/>
''' </remarks>
<DllImport("wscapi.dll")>
Private Shared Function WscGetSecurityProviderHealth(<[In]> providers As WscSecurityProvider,
<Out> ByRef pHealth As WscSecurityProviderHealth) _
As Integer
End Function
''' <summary>
''' Gets the status of security provider.
''' </summary>
''' <param name="provider">provider.</param>
''' <returns>The possible states for service monitored by Windows Security Center (WSC).</returns>
Public Shared Function GetStatusOfSecurityProvider(provider As WscSecurityProvider) As WscSecurityProviderHealth
Dim outValue As WscSecurityProviderHealth = WscSecurityProviderHealth.WscSecurityProviderHealthUnknown
Dim ret As Integer = WscGetSecurityProviderHealth(provider, outValue)
Return If(ret <> &H0, WscSecurityProviderHealth.WscSecurityProviderHealthUnknown, outValue)
End Function
End Class