New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

connectwise-control-api

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

connectwise-control-api

Programmatically manage your resources in ConnectWise Control, a.k.a ScreenConnect.

latest
Source
npmnpm
Version
1.0.10
Version published
Maintainers
1
Created
Source

ConnectWise Control API

Note: This library is in no way affiliated with ConnectWise.

This module is intended to help manage ConnectWise Control resources programmatically. Since there is no official API, this essentially interfaces with the front-end web interface to login, get a cookie and run commands that appear to be run in the web browser. The original intent of this library was to be able to create an interface to automatically create and update session groups based on companies in ConnectWise Manage, but it can be used for anything.

Future Features

The goal is include all of the features available in the web interface such as running commands, downloading agents, etc.

Requirements

This project uses async/await, so I'd recommend using NodeJS 8.11.2 (LTS).

Getting Started

In your project's folder, run npm i connectwise-control-api --save. Then, in your project, include the following:

const cc = require('connectwise-control-api')('https://yourinstance.screenconnect.com', 'user@domain.com', 'ReallyGoodPassword');

Functions

Get Session Groups

await cc.getSessionGroups();

[
    {
      "Name": "Fun Client",
      "SessionFilter": "CustomProperty1='Fun Client'",
      "SessionType": 2,
      "SubgroupExpressions": ""
    },
    {
      "Name": "Boring Client",
      "SessionFilter": "CustomProperty1='Boring Client'",
      "SessionType": 2,
      "SubgroupExpressions": ""
    },
    {
      "Name": "Doesn't Pay Their Bills Client",
      "SessionFilter": "CustomProperty1='Doesn't Pay Their Bills Client'",
      "SessionType": 2,
      "SubgroupExpressions": ""
    }
]

Get Sessions

await cc.getSessions();

[
  {
    "ActiveConnections": [
      {
        "ConnectedTime": 123456,
        "ConnectionID": "xxxxx-xxxxx-xxxxx-xxxxx-xxxxxxx",
        "ParticipantName": "",
        "ProcessType": 2
      }
    ],
    "Attributes": 1,
    "Code": "",
    "CustomPropertyValues": [
      "Session Group Name",
      "",
      "",
      "",
      "",
      "",
      "",
      ""
    ],
    "GuestClientVersion": "6.7.19388.6796",
    "GuestIdleTime": 123,
    "GuestLoggedOnUserDomain": "DOMAIN",
    "GuestLoggedOnUserName": "user",
    "GuestOperatingSystemName": "Windows 7 Professional",
    "GuestOperatingSystemVersion": "6.1.7601",
    "Host": "",
    "IsPublic": false,
    "LastAlteredVersion": 12341234,
    "LastConnectedEventTime": 1234,
    "LastInitiatedJoinEventTime": -1,
    "Name": "COMPUTER1",
    "Notes": "",
    "Permissions": 129019,
    "QueuedEvents": [],
    "SessionID": "xxxxx-xxxxx-xxxxx-xxxxx-xxxxxxx",
    "SessionType": 2,
    "UnacknowledgedEvents": []
  }
]

Example Response

Sort Session Groups Alphabetically

await cc.sortSessionGroups();

Create a Session Group

await cc.createSessionGroup('Your New Group')

Rename a Session Group

await cc.renameSessionGroup('Old Session Name', 'New Session Name');

Example Response

No response.

Get an Agent MSI as a Buffer

await cc.getAgentDownload(organizationname);

Example Response

This function returns of a buffer of the agent's MSI download. You could pass this to NodeJS's fs module for downloading like this:

const fs = require('fs');

var buffer = await cc.getAgentDownload('Your Organization');
fs.writeFileSync('Your Organization.msi', buffer);

FAQs

Package last updated on 17 Jun 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts