1.0.10 • Published 5 years ago

connectwise-control-api v1.0.10

Weekly downloads
2
License
ISC
Repository
github
Last release
5 years ago

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);
1.0.10

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.1.1

5 years ago

1.1.0

5 years ago

1.0.7

5 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago