meshcentral
Version:
Web based remote computer management server
1 lines • 1.91 kB
JavaScript
var seccenter=null,WSC_SECURITY_PROVIDER_FIREWALL=1,WSC_SECURITY_PROVIDER_AUTOUPDATE_SETTINGS=2,WSC_SECURITY_PROVIDER_ANTIVIRUS=4,WSC_SECURITY_PROVIDER_ANTISPYWARE=8,WSC_SECURITY_PROVIDER_HEALTH_GOOD=0,WSC_SECURITY_PROVIDER_HEALTH_NOTMONITORED=1,WSC_SECURITY_PROVIDER_HEALTH_POOR=2,WSC_SECURITY_PROVIDER_HEALTH_SNOOZE=3;try{(seccenter=require("_GenericMarshal").CreateNativeProxy("Wscapi.dll")).CreateMethod("WscGetSecurityProviderHealth"),seccenter.CreateMethod("WscRegisterForChanges"),seccenter.CreateMethod("WscUnRegisterChanges")}catch(e){}function statusString(e){var t="UNKNOWN";switch(e){case 0:t="OK";break;case 1:case 3:t="WARNING";break;case 2:t="PROBLEM";break;default:t="UNKNOWN"}return t}function getStatus(){var e,t={firewall:"UNKNOWN",antiVirus:"UNKNOWN",autoUpdate:"UNKNOWN"};return null!=seccenter&&(e=require("_GenericMarshal").CreateVariable(4),0==seccenter.WscGetSecurityProviderHealth(WSC_SECURITY_PROVIDER_FIREWALL,e).Val&&(t.firewall=statusString(e.toBuffer().readUInt32LE())),0==seccenter.WscGetSecurityProviderHealth(WSC_SECURITY_PROVIDER_ANTIVIRUS,e).Val&&(t.antiVirus=statusString(e.toBuffer().readUInt32LE())),0==seccenter.WscGetSecurityProviderHealth(WSC_SECURITY_PROVIDER_AUTOUPDATE_SETTINGS,e).Val)&&(t.autoUpdate=statusString(e.toBuffer().readUInt32LE())),t}if("win32"!=process.platform||null==seccenter)throw"win-securitycenter not supported on this platform";var j={status:getStatus};require("events").EventEmitter.call(j,!0).createEvent("changed"),j._H=require("_GenericMarshal").CreatePointer(),j._EV=require("_GenericMarshal").GetGenericGlobalCallback(1),(j._EV.parent=j)._EV.on("GlobalCallback",function(e){this.ObjectToPtr_Verify(this.parent,e)&&this.parent.emit("changed")}),j.on("~",function(){seccenter.WscUnRegisterChanges(this._H).Val}),0==seccenter.WscRegisterForChanges(0,j._H,j._EV,require("_GenericMarshal").ObjectToPtr(j)).Val&&(j._H=j._H.Deref()),module.exports=j