Guest User

Untitled

a guest
Dec 11th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. require('dotenv').config()
  2.  
  3. const Promise = require('bluebird')
  4. , WmiClient = require('wmi-client')
  5.  
  6. var servers = [
  7. { host:'10.0.10.95', name:'server1', username:process.env.ad_user, password:process.env.ad_pass },
  8. { host:'10.0.10.10', name:'server2', username:process.env.ad_user, password:process.env.ad_pass }
  9. ]
  10.  
  11. function connectToServers() {
  12. Promise.map(servers, (server) => {
  13. var wmiOptions = {
  14. host:server.host,
  15. username:server.username,
  16. password:server.password
  17. }
  18. server.wmi = Promise.promisifyAll(new WmiClient(wmiOptions));
  19. })
  20. }
  21.  
  22. /* this will be repeating every 5s */
  23. function getWmiData() {
  24. Promise.map(servers, (server)=> {
  25. const data = getWMI(server.wmi)
  26. console.log(data)
  27. })
  28. }
  29.  
  30. /* wmi queries functions */
  31. async function getWMI(wmi) {
  32. var osVersion = await wmi.queryAsync('SELECT SerialNumber,Caption,Version FROM Win32_OperatingSystem')
  33. var services = await wmi.queryAsync('select Caption, Status, Started, ProcessId, DisplayName, Name, PathName from Win32_Service')
  34. return {osVersion, services}
  35. }
  36.  
  37. Promise.try(() => {
  38. connectToServers()
  39. }).then(() => {
  40. getWmiData()
  41. })
Add Comment
Please, Sign In to add comment