0 Members and 1 Guest are viewing this topic.
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 FunctionEnd Class