UNPKG

meshcentral

Version:

Web based remote computer management server

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