LICENSEWARE Collector Logo

LICENSEWARE Collector

Product Overview

What is LICENSEWARE Collector?
A free lightweight agent that collects system and software inventory data from your servers and securely transmits it to the LICENSEWARE ™ platform for software license compliance analysis.

Operating System Compatibility

Linux

  • x86_64 and arm64 (64-bit)
  • systemd required
  • RHEL, Ubuntu, Debian, etc.

Windows

  • x86_64 (64-bit) only
  • Windows 10+ (Desktop)
  • Windows Server 2016+

macOS

  • Intel & Apple Silicon
  • macOS 12+
  • launchd service

Network Requirements

  • api.licenseware.ioHTTPS 443
    Primary API for data ingestion, enrolment and configuration. Regional tenants use api.us.licenseware.io or api.au.licenseware.io instead — the agent follows the issuer in its enrolment token.
  • pushlogs.licenseware.ioHTTPS 443
    Agent log shipping, enabled by default (LOG_SHIP_ENABLED). Regional tenants use pushlogs.us.licenseware.io or pushlogs.au.licenseware.io.
  • cdn.licenseware-collector.comHTTPS 443
    Installer downloads, and osquery updates (manifest and binaries), which the agent checks continuously. From 0.17.0 agent updates come from here too. Required continuously, not just at install time.
  • api.github.comHTTPS 443
    Agent self-update on 0.16.0 and earlier: Windows and Linux agents check for a new release every 24 hours (macOS agents on those versions never self-update). From 0.17.0 agents update from cdn.licenseware-collector.com and no longer need this host.
  • release-assets.githubusercontent.comHTTPS 443
    Self-update and osquery fallback downloads on 0.16.0 and earlier — GitHub redirects here. Also allow the legacy host objects.githubusercontent.com. Not needed from 0.17.0.
  • github.comHTTPS 443
    osquery fallback download on 0.16.0 and earlier. Not used by an MSI or package install, which bundle osquery already. Not needed from 0.17.0.

System Requirements

  • Architecture
    64-bit only (32-bit not supported)
  • Disk Space
    ~100 MB for binaries and temp files
  • Memory
    Minimal (~50 MB during operation)

Direct Downloads

Download the installer package for your operating system and architecture. Packages never contain an enrollment token — you supply it at install time.

Windows

Download .msi The standalone .exe is deprecated and no longer published here. Use the .msi: it bundles osquery, installs the Windows service, and upgrades in place. Existing .exe installs keep updating themselves.

x64 (64-bit)

Linux

Debian / Ubuntu · RHEL / Fedora / SUSE

macOS

Download .pkg

Intel & Apple Silicon

uninstall.command

By downloading you accept the Collector Licence Agreement.

The /d/latest/ links above always resolve to the current release. To pin a specific version, replace latest with the release tag, e.g. https://cdn.licenseware-collector.com/d/v1.2.3/…

Installation Guide

1

Get Your Token

  1. Go to LICENSEWARE and sign in or create a free account
  2. Navigate to LC App and go to API Keys tab
  3. Click Create Key, configure it, and copy the token
2

Download and Install

Linux (.deb / .rpm)

⚠️ Requires root privileges

  1. Download the package for your architecture
    curl -fsSLO https://cdn.licenseware-collector.com/d/latest/licenseware-collector_amd64.deb
  2. Install the package
    sudo apt install ./licenseware-collector_amd64.deb

    On RHEL / Fedora / SUSE use sudo dnf install ./licenseware-collector_amd64.rpm. Installing stages the service but does not start it — the next step does.

  3. Enroll the machine and start the service
    sudo TOKEN=<enrollment-token> licenseware-collector register

Full Command Reference

For environments with a proxy or custom CA certificate, export the variables and pass them through to register with sudo -E (on macOS, call the binary by its full path, /usr/local/licenseware-collector/seed/licenseware-collector; it is not on the PATH):

export HTTPS_PROXY="http://proxy.corp.com:8080" # optional
export NO_PROXY="localhost,127.0.0.1" # optional
export CA_CERT_PATH=/etc/ssl/certs/corp-ca.pem # optional
sudo -E TOKEN=<enrollment-token> licenseware-collector register

Or pass the CA certificate as an explicit flag:

sudo TOKEN=<enrollment-token> licenseware-collector register \
  --ca-cert /etc/ssl/certs/corp-ca.pem
Flag / VariableRequiredDescription
TOKENYesEnrollment token from the Licenseware platform, passed on the register command line. The aliases LICENSEWARE_ENROLL_TOKEN and ENROLL_TOKEN are also accepted.
--ca-cert / CA_CERT_PATHNoPath to PEM file with custom CA certificates (for on-prem / TLS inspection)
--env-fileNoPath to a file with environment variables to load
HTTPS_PROXYNoHTTP(S) proxy for outbound traffic. Automatically saved to the service config.
NO_PROXYNoComma-separated list of hosts to bypass the proxy

macOS (.pkg)

⚠️ Requires root privileges

  1. Install the package
    sudo installer -pkg LicensewareCollector.pkg -target /
  2. Enroll the machine and start the service
    sudo TOKEN=<enrollment-token> \
      /usr/local/licenseware-collector/seed/licenseware-collector register

Windows

⚠️ Requires Administrator privileges

  1. Download the installer
    Invoke-WebRequest -Uri https://cdn.licenseware-collector.com/d/latest/LicensewareCollector.msi `
      -OutFile LicensewareCollector.msi
  2. Install, passing the enrollment token
    msiexec /i LicensewareCollector.msi TOKEN=<enrollment-token>
    The token is marked as a secure property, so it is never written to the MSI log. Run the same command with a newer .msi to upgrade in place.

Unattended / MDM deployment (Intune, SCCM)

The install runs as SYSTEM and is fully unattended: msiexec /i LicensewareCollector.msi TOKEN=<enrollment-token> /qn /norestart. Enrolment happens synchronously inside the installer — nothing is deferred to a background task.

Deployment of the Collector through automated tools such as Intune or SCCM constitutes acceptance of the Collector Licence Agreement by the deploying organisation.

Exit codes

CodeMeaning
0Installer succeeded — see the caveat below
3010Success, reboot pending (files in use; the package itself schedules no reboot)
1603Install action failed, or a downgrade was blocked. On a fresh install this includes an enrolment token the backend rejected: enrolment runs before the service is created, so the install rolls back. The reason is in %ProgramData%\Licenseware\setup.log
1618Another installation is already in progress
1619 / 1620Package path unreachable, or not a valid installer package

These are standard Windows Installer codes. There are no vendor-specific values.

Detecting a registered agent

From Collector 0.16.0 the agent records whether the Licenseware backend has acknowledged it. On Windows that state is mirrored into the registry, so Intune and SCCM can use a built-in registry rule — no script. Do not use a file-version or product-code rule: both report success even when enrolment did not complete.

SettingValue
Rule typeRegistry
Key pathHKEY_LOCAL_MACHINE\SOFTWARE\Licenseware\Collector
Value nameRegistered
Detection methodInteger comparison, Equals, 1
Associated with a 32-bit app on 64-bit clientsNo

SCCM uses the same key and value for an application detection method and for a compliance configuration item. The key also carries Status, AgentId, DeviceUuid, Version, RegisteredAt and LastContactAt as strings for hardware inventory.

On every platform the same information is in a world-readable file with no secrets: registration.json in the agent's state directory (see Installation Paths). Its status is enrolled until the backend acknowledges the agent, then registered. The status command reads it and exits 0 only when registered (2 enrolled only, 3 no state file, 4 no service); status --json prints the file.

licenseware-collector status --json
jq -e '.status == "registered"' /var/lib/licenseware-collector/registration.json

Agents older than 0.16.0: use this PowerShell detection script. The TOKEN= line is written only by a completed enrolment and the Windows service is created only by register; together they mean the agent has enrolled, though not that the backend has acknowledged it.

$svc = Get-Service licenseware-collector -ErrorAction SilentlyContinue
$env = "$env:ProgramData\Licenseware\collector.env"
if ($svc -and (Test-Path $env) -and (Select-String -Path $env -Pattern '^TOKEN=..*' -Quiet)) {
    Write-Output "Installed"
    exit 0
}
exit 1

Full Command Reference

When enrolling manually (a tokenless MSI install), the token is supplied through the environment and the remaining options as flags:

$env:TOKEN = "<enrollment-token>"
& "$env:ProgramFiles\Licenseware\LicensewareCollector.exe" register `
  --ca-cert <PATH> --env-file <PATH>
FlagEnv VariableRequiredDescription
TOKEN= (MSI property)TOKENYesEnrollment token from the Licenseware platform. Pass TOKEN= to msiexec, or set TOKEN before running register manually. The older ENROLLTOKEN= property is still accepted.
--ca-certCA_CERT_PATHNoPath to PEM file with custom CA certificates (for on-prem / TLS inspection)
--env-file, -e—NoPath to a file with environment variables to load
—HTTPS_PROXYNoHTTP(S) proxy for outbound traffic. Automatically saved to the service config.
—NO_PROXYNoComma-separated list of hosts to bypass the proxy

Full Example with Proxy and Custom CA

$env:HTTPS_PROXY = "http://proxy.corp.com:8080"
$env:NO_PROXY = "localhost,127.0.0.1"
$env:TOKEN = "<enrollment-token>"
& "$env:ProgramFiles\Licenseware\LicensewareCollector.exe" register `
  --ca-cert "C:\certs\internal-ca.pem"

Proxy Configuration

If your network requires an HTTP proxy for outbound connections, the collector natively supports standard proxy environment variables for all egress traffic.

VariableDescriptionExample
HTTPS_PROXYProxy for HTTPS traffic (used for all collector communication)http://proxy.corp.com:8080
HTTP_PROXYProxy for plain HTTP traffichttp://proxy.corp.com:8080
NO_PROXYComma-separated list of hosts to bypass the proxylocalhost,127.0.0.1,.internal.corp

Authenticated proxies are supported using the format http://user:password@proxy.corp.com:8080.

Setup

Add the proxy variables to the collector environment file on the target machine. Each line uses KEY=value format.

Linux
HTTPS_PROXY=http://proxy.corp.com:8080
NO_PROXY=localhost,127.0.0.1
File: /etc/default/licenseware-collector
macOS
HTTPS_PROXY=http://proxy.corp.com:8080
NO_PROXY=localhost,127.0.0.1
File: /usr/local/etc/licenseware-collector
Windows
HTTPS_PROXY=http://proxy.corp.com:8080
NO_PROXY=localhost,127.0.0.1
File: C:\ProgramData\Licenseware\collector.env

Applying Changes

After modifying the environment file, restart the collector service for changes to take effect:

Linux
sudo systemctl restart licenseware-collector
macOS
sudo launchctl kickstart -k system/io.licenseware.licenseware-collector
Windows (Administrator PowerShell)
Restart-Service licenseware-collector

Custom CA Certificates

Corporate proxies that perform TLS inspection inject their own CA certificate into the chain. The collector must be configured to trust these certificates, otherwise all HTTPS connections will fail.

OptionDescriptionExample
CA_CERT_PATHEnvironment variable pointing to a PEM file with additional CA certificates/etc/ssl/corp-ca.pem
--ca-certCLI flag (overrides CA_CERT_PATH when set)--ca-cert /etc/ssl/corp-ca.pem

Custom certificates are appended to the system certificate pool, not replacing it. All standard system CAs remain trusted.

Setup

Add the CA_CERT_PATH variable to the collector environment file, pointing to the PEM file containing your corporate CA certificate(s).

Linux
CA_CERT_PATH=/etc/ssl/certs/corp-ca.pem
File: /etc/default/licenseware-collector
macOS
CA_CERT_PATH=/usr/local/etc/ssl/corp-ca.pem
File: /usr/local/etc/licenseware-collector
Windows
CA_CERT_PATH=C:\ProgramData\Licenseware\corp-ca.pem
File: C:\ProgramData\Licenseware\collector.env

Applying Changes

After modifying the environment file, restart the collector service for changes to take effect:

Linux
sudo systemctl restart licenseware-collector
macOS
sudo launchctl kickstart -k system/io.licenseware.licenseware-collector
Windows (Administrator PowerShell)
Restart-Service licenseware-collector

Uninstall Guide

Linux

  1. Debian / Ubuntu
    sudo apt remove licenseware-collector
  2. RHEL / Fedora / SUSE
    sudo dnf remove licenseware-collector

Removing the package stops the service and runs the uninstaller for you. Do not call licenseware-collector uninstall directly on a package-managed host — it refuses and points you back at the package manager.

macOS

Download uninstall.command from the Downloads section and double-click it, or run it from Terminal:

sudo LICENSEWARE_UNINSTALL_FROM_PACKAGE=1 \
  /usr/local/libexec/licenseware-collector/licenseware-collector uninstall --force
sudo rm -rf /usr/local/licenseware-collector
sudo pkgutil --forget io.licenseware.collector

Windows (Administrator PowerShell)

  1. Uninstall the package
    msiexec /x LicensewareCollector.msi
  2. Or remove it from the UI:
    Settings > Apps > Installed apps
Uninstalling stops the service, removes it, and deletes the collector's runtime files and enrollment token from the machine. The package removals above (msiexec /x, apt remove / dnf remove and uninstall.command) run with fixed arguments and take no extra options: --preserve-state and --remove-osquery are options of the licenseware-collector uninstall command, not of msiexec.

API Endpoints

All communication uses HTTPS with Bearer token authentication.

MethodEndpointPurposeFrequency
POST/agent/registerRegister agentOnce
GET/agent/configsFetch configsEvery 30m
GET/agent/catalogsGet catalogsEvery 30m
POST/agent/ingestUpload dataCyclical

Data Collection Process

What You Do

Download
Collector
→
Register
Collector
→
✓ Done!

What the Collector Does

Fetch Query
Catalogs
→
Execute
Queries
→
Upload to
LICENSEWARE ™

Data Collection Specification

This section lists every query the Collector runs, the operating systems it runs on, how often, the exact fields collected and why. It is the same specification published as Schedule 3 of the Licenseware Data Processing Addendum, which governs all data transmitted by the Collector. Nothing outside this list is collected.

The Collector runs two fixed catalogues. Catalogue definitions are fetched from the platform every 30 minutes and results are sent over TLS to the regional instance encoded in your enrolment token. Field names are the column names of the underlying osquery tables.

The query, field and purpose tables below are published in English. The English text is the operative version regardless of the language selected for this site.

Catalogue A: Inventory and processes

Every 60 minutes

System, hardware, operating system and installed-software inventory, plus a point-in-time view of running processes, services and logged-in users.

Catalogue A: inventory and processes, collected every 60 minutes
QueryOSFields collectedPurposePersonal data relevance
system_infoLinux Windows macOShostname, uuid, computer_name, local_hostname, cpu_type, cpu_subtype, cpu_brand, cpu_physical_cores, cpu_logical_cores, cpu_sockets, cpu_microcode, physical_memory, hardware_vendor, hardware_model, hardware_version, hardware_serial, board_vendor, board_model, board_version, board_serialDevice identity and hardware spec for asset matching and per-device licensingDurable device identifiers (UUID, hardware serial, board serial). No user data.
os_versionLinux Windows macOSname, version, major, minor, patch, build, platform, platform_like, codename, arch, install_date, revisionOS edition and version for OS licensing and support-lifecycle reportingNone.
kernel_infoLinux Windows macOSversion, arguments, path, deviceKernel version for platform reportingKernel boot arguments may reveal host configuration. No user data.
usersLinux Windows macOSuid, gid, uid_signed, gid_signed, username, directory, shell, uuid, typeLocal account enumeration for per-user licence attribution and user countsUsernames, UIDs and home directory paths of all local accounts, including service accounts. Personal data.
programsWindowsname, version, install_location, install_source, language, publisher, uninstall_string, install_date, identifying_numberPrimary Windows installed-software inventoryInstall paths and product identifiers only. No user data.
deb_packagesLinuxname, version, source, size, arch, revision, status, maintainer, section, priorityDebian/Ubuntu installed-package inventoryNone.
rpm_packagesLinuxname, version, release, source, size, sha1, arch, epoch, install_time, vendor, package_groupRHEL/SUSE installed-package inventoryNone.
startup_itemsLinux Windows macOSname, path, type, source, status, usernameDetect software configured to auto-startUsername associated with each startup item; file paths. Command-line arguments are not collected.
npm_packagesLinux Windows macOSname, version, description, author, license, homepage, path, directoryOSS dependency inventory for licence compliancePackage path and directory may reveal internal project and repository names on developer machines.
python_packagesLinux Windows macOSname, version, summary, author, license, path, directoryOSS dependency inventory for licence compliancePackage path and directory may reveal internal project and repository names on developer machines.
chocolatey_packagesWindowsname, version, summary, author, license, pathWindows package-manager inventoryNone.
homebrew_packagesmacOSname, path, versionmacOS package-manager inventoryNone.
darwin_appsmacOSname, path, bundle_executable, bundle_identifier, bundle_name, bundle_short_version, bundle_version, bundle_package_type, compiler, development_region, display_name, info_string, minimum_system_version, category, applescript_enabled, copyright, last_opened_timePrimary macOS installed-software inventorylast_opened_time is a per-application usage signal, not attributed to a user.
darwin_plistmacOSapp name, app path, plist key, plist value restricted to CFBundleGetInfoString NSHumanReadableCopyright CFBundleIdentifier under /Applications onlyPublisher and edition resolution for macOS appsNone. Restricted to three named keys for apps under /Applications.
running_processes_windowsWindowspid, name, path, state, cwd, root, uid, gid, euid, egid, suid, sgid, on_disk, wired_size, resident_size, total_size, user_time, system_time, disk_bytes_read, disk_bytes_written, start_time, parent, pgroup, threads, nice, elevated_token, secure_process, protection_type, virtual_process, elapsed_time, handle_countJoin running processes to installed software for last-used inferenceProcess owner identifiers (uid, euid) and working and root directory paths, which may include user home and project directories. An hourly process list is an activity signal. Command-line arguments are not collected.
running_processes_posixLinux macOSpid, name, path, state, cwd, root, uid, gid, euid, egid, suid, sgid, on_disk, wired_size, resident_size, total_size, user_time, system_time, disk_bytes_read, disk_bytes_written, start_time, parent, pgroup, threads, niceJoin running processes to installed software for last-used inferenceProcess owner identifiers (uid, euid) and working and root directory paths, which may include user home and project directories. An hourly process list is an activity signal. Command-line arguments are not collected.
windows_services_runningWindowsname, service_type, display_name, status, pid, path, module_path, description, user_account, start_type, win32_exit_code, service_exit_codeDetect server software running as a serviceService account names.
systemd_units_runningLinuxid, description, load_state, active_state, sub_state, following, object_path, job_id, job_type, job_path, fragment_path, user, source_pathDetect Linux server software running as a unitUnit user. Paths only; no command lines.
launchd_servicesmacOSpath, name, label, program, run_at_load, keep_alive, on_demand, disabled, username, groupname, stdout_path, stderr_path, start_interval, watch_paths, queue_directories, inetd_compatibility, start_on_mount, root_directory, working_directory, process_typeDetect macOS software running as a daemon or agentUsername and group under which the daemon runs; file paths. Command-line arguments (program_arguments) are not collected.
logged_in_usersLinux Windows macOStype, user, tty, host, time, pid, sid, registry_hiveAttribute device usage to a named userIdentifies which user accounts are logged in to a device, and when. Personal data.

Catalogue B: Software usage

Every 240 minutes

Execution history used to work out when software was last used, for licence reclamation and audit evidence.

Catalogue B: software usage, collected every 240 minutes
QueryOSFields collectedPurposePersonal data relevance
prefetch_metadataWindowspath, filename, hash, last_run_time, other_run_times, run_count, size, volume_serial, volume_creation, accessed_files_count, accessed_directories_countLast-used and run-count evidence for licence reclaimPer-binary execution history (last run time, other run times, run count). Not attributed to a user. Accessed files and directories are counts only; no filenames.
userassist_registryWindowspath, last_execution_time, sidPer-user last-used evidence for licence reclaimPer-user program execution history keyed to the Windows user SID. Direct evidence of which user account ran which program and when.
bam_registryWindowspath, last_execution_time, sidPer-user last-used evidence for licence reclaimPer-user program execution history keyed to the Windows user SID, as UserAssist.
darwin_app_file_timesmacOSpath, filename, atime, mtime restricted to /ApplicationsLast-used inference for macOS appsFile metadata only (access and modification times), restricted to /Applications. Not attributed to a user.
linux_binary_file_timesLinuxpath, filename, atime, mtime restricted to /usr/bin /usr/sbin /usr/local/bin /opt /opt/*/binLast-used inference for Linux binariesFile metadata only (access and modification times), restricted to named binary directories. Not attributed to a user.

Operational logs

The agent ships its own operational logs (status, errors, ingestion cycle information) to pushlogs.licenseware.io or the regional equivalent by default. They may incidentally contain hostnames or file paths. Set LOG_SHIP_ENABLED=false in the environment file and restart the service to disable log shipping. Logs are processed under the DPA.

Change history

3 Sep 2026Command-line argument fields (startup_items.args, launchd_services.program_arguments) removed. No process query collects command-line arguments.
Sep 2026Specification first published at field level. Intervals: 60 minutes (inventory and processes), 240 minutes (software usage).

Additions to this specification are notified to registered customer contacts at least 30 days in advance under DPA clause 13.3. Reductions in scope take effect immediately and are recorded here.

Installation Paths

Linux

Binary
/usr/libexec/licenseware-collector/licenseware-collector
Service File
/etc/systemd/system/licenseware-collector.service
Environment File
/etc/default/licenseware-collector
Registration state (no secrets, world-readable)
/var/lib/licenseware-collector/registration.json

Windows

Seed binary (installer-owned)
%ProgramFiles%\Licenseware\LicensewareCollector.exe
Runtime binary (service + self-update)
C:\ProgramData\Licenseware\bin\LicensewareCollector.exe
Environment File
C:\ProgramData\Licenseware\collector.env
Registration state (no secrets, world-readable)
C:\ProgramData\Licenseware\registration.json
Registry mirror
HKLM\SOFTWARE\Licenseware\Collector

macOS

Binary
/usr/local/libexec/licenseware-collector/licenseware-collector
LaunchAgent/LaunchDaemon
/Library/LaunchDaemons/io.licenseware.licenseware-collector.plist
Environment File
/usr/local/etc/licenseware-collector
Registration state (no secrets, world-readable)
/usr/local/libexec/licenseware-collector/registration.json

Quick Reference

Agent Intervals

  • Config Refresh: 30 mins
  • Catalog Check: 30 mins
  • Failed File Cleanup: 6 hours

Service Commands

  • TOKEN=<enrollment-token> licenseware-collector register
  • licenseware-collector status
  • licenseware-collector stop
  • licenseware-collector run-once

On Linux licenseware-collector is on the PATH (/usr/bin/licenseware-collector). On Windows and macOS it is not: call the binary by its full path, %ProgramData%\Licenseware\bin\LicensewareCollector.exe on Windows and /usr/local/libexec/licenseware-collector/licenseware-collector on macOS.

Logs & Troubleshooting

The collector writes its logs to standard error; the Windows service writes them to the Windows Event Log instead. How you access them depends on the operating system and service manager.

Log Level

The verbosity is controlled by the LOG_LEVEL environment variable in the collector environment file. The default is info.

LevelDescription
debugMost verbose — all messages including internal state
infoOperational messages (startup, config reload, ingestion cycles)
warnNon-critical issues that may need attention
errorFailures only (default)
criticalFatal errors that stop the service

Linux

On systemd-based systems, logs are captured by the journal automatically.

Follow logs in real time:
journalctl -u licenseware-collector -f
View logs from the last hour:
journalctl -u licenseware-collector --since "1 hour ago"

macOS

The launchd service writes both stdout and stderr to a single log file.

Follow logs in real time:
tail -f /var/log/licenseware-collector.log
View full log file:
cat /var/log/licenseware-collector.log

Windows

The Windows service writes the collector's own log to the Windows Event Log under the licenseware-collector provider (step 8); it writes no log file. Use the commands below in an Administrator PowerShell to investigate the service: check its state, inspect service start/stop/crash records that Windows itself emits, read the collector's log, and capture full application output by running the collector interactively.

1. Check the collector's own service health:
& "$env:ProgramData\Licenseware\bin\LicensewareCollector.exe" status
2. Confirm the Windows service is registered and running:
Get-Service licenseware-collector | Format-List Name, Status, StartType, DisplayName
3. Inspect the service binary path, account, and failure recovery configuration:
sc.exe qc licenseware-collector ; sc.exe qfailure licenseware-collector
4. Pull Service Control Manager events (start, stop, crash, recovery) from the System Event Log for the last 24 hours:
Get-WinEvent -FilterHashtable @{
  LogName   = 'System'
  StartTime = (Get-Date).AddDays(-1)
  ProviderName = 'Service Control Manager'
} | Where-Object { $_.Message -match 'licenseware-collector' } |
  Format-List TimeCreated, Id, LevelDisplayName, Message
5. Look for application crash records (Windows Error Reporting / .NET runtime faults) tied to the binary:
Get-WinEvent -FilterHashtable @{
  LogName   = 'Application'
  StartTime = (Get-Date).AddDays(-7)
} | Where-Object { $_.Message -match 'LicensewareCollector' } |
  Format-List TimeCreated, ProviderName, Id, LevelDisplayName, Message
6. Or browse interactively in Event Viewer (Windows Logs → System / Application):
eventvwr.msc
7. Capture the collector's full application output by stopping the service and running a single collection cycle interactively — all logs stream to the console:
Stop-Service licenseware-collector
$env:LOG_LEVEL = 'debug'
& "$env:ProgramData\Licenseware\bin\LicensewareCollector.exe" run-once --env-file C:\ProgramData\Licenseware\collector.env *>&1 |
  Tee-Object -FilePath "$env:USERPROFILE\licenseware-collector-debug.log"
Start-Service licenseware-collector
The *>&1 redirection merges every PowerShell stream (stdout, stderr, warnings, verbose, debug) so nothing the collector writes is lost.
8. Read the collector's own service log. It writes to the Windows Event Log under the licenseware-collector provider — stderr is not captured for services, so this is the primary source once the service is running:
Get-WinEvent -ProviderName "licenseware-collector" -MaxEvents 50
9. To debug the installation itself, re-run the MSI with verbose logging and inspect the resulting file. The enrollment token is a secure property and is never written to this log:
msiexec /i LicensewareCollector.msi /l*v install.log
Get-Content install.log -Tail 200
10. If the installer finishes but no service appears, read the installer's own log. It records what the setup helper and register printed, including the reason enrollment failed, and it survives the rollback that removes everything else. The enrollment token is never written to it:
Get-Content C:\ProgramData\Licenseware\setup.log

Licence Agreement

The LICENSEWARE Collector is licensed under the Licenseware Collector Licence Agreement, reproduced in full below. A copy is included in every installation package and is printed by licenseware-collector licence. The version published on this page is the current version and prevails over any copy distributed with an earlier release.

The agreement is published in English. The English text is the operative version regardless of the language selected for this site.

Read the full Licenseware Collector Licence Agreement

Last updated: August 2026

Licenseware Technology Services S.R.L.
B2B Agreement — Governed by the Laws of Romania (EU Member State)

PLEASE READ THIS LICENCE CAREFULLY. BY GENERATING AN ENROLMENT TOKEN FOR THE AGENT, OR BY DOWNLOADING, COPYING, INSTALLING OR USING ALL OR ANY PORTION OF THE AGENT, INCLUDING WHERE INSTALLATION IS PERFORMED THROUGH AUTOMATED DEPLOYMENT TOOLS OR BY A THIRD PARTY ON YOUR BEHALF, YOU ACCEPT ALL THE TERMS AND CONDITIONS OF THIS LICENCE. IF YOU DO NOT AGREE TO THE TERMS OF THIS LICENCE, YOU MAY NOT USE THE AGENT.

This Licence Agreement (Agreement) is a legal agreement between you (Licensee) and Licenseware Technology Services S.R.L., incorporated and registered in Romania with company number J21/238/2021, VAT no RO42866470, whose registered office is at Independentei 1, Slobozia, Ialomita, 920095, Romania (Licensor) for the Licenseware Collector agent software (Agent) and associated Documentation.

The Agent is provided free of charge as a companion to the Licenseware platform. Your access to and use of the platform itself, including the generation of Enrolment Tokens, is governed by the Licenseware End User Licence Agreement available at https://licenseware.io/legal/, together with any applicable Order Form or partner agreement (together, the Platform Agreement).

This Agreement is a B2B agreement entered into between entities acting in the course of their business. This is not a consumer contract. You acknowledge that we may update the terms and conditions of this Agreement from time to time and that it is your responsibility to check any updates.

Agreed Terms

1. Provision of the Agent

1.1 Licensor makes the Agent available for download at https://licenseware-collector.com/ and through the Platform, and will provide the Agent materially in accordance with this Agreement and the Documentation.

1.2 A copy of this Agreement is included in every installation package for the Agent. The version published at https://licenseware-collector.com/ is the current version and prevails over any copy distributed with an earlier release.

2. Grant and Scope of Licence

2.1 Subject to the Licensee's continuous compliance with this Agreement, Licensor grants the Licensee a non-exclusive, non-transferable, revocable and limited licence, free of charge, during the Term to: (a) download, reproduce and distribute the Agent within its own environment and those of its Managed Clients, including through automated deployment and device management tools, solely for the purpose of installation on Managed Systems; and (b) install and run the Agent on Managed Systems solely to collect and transmit Collected Data to the Licensee's tenant on the Platform, for the Licensee's internal business purposes or, where the Licensee is an authorised partner of Licensor, for the provision of services to its Managed Clients.

2.2 Installation and operation of the Agent on the systems of a Managed Client constitutes use of the Agent by the Licensee. No licence rights are granted to Managed Clients under this Agreement and nothing in this clause constitutes a sublicence.

2.3 The Licensee shall take all necessary steps to ensure that its employees, agents and subcontractors abide by the terms of this Agreement and shall comply with the Documentation.

2.4 The licence granted under clause 2.1 applies without altitude restriction. Where the Licensee operates the Agent on a Managed System at or above the Kármán Line (100 kilometres above mean sea level) and notifies Licensor at contact@licenseware.io with reasonable evidence of the deployment, such as mission documentation, launch records or orbital tracking data: (a) Licensor will designate that Managed System as an orbital asset in the Licensee's tenant; and (b) that Managed System shall not count towards any per-device limit, allowance or charge under any commercial Platform plan, in each case applied under the Platform Agreement. Clause 10.3 applies to any such deployment.

3. Restrictions

3.1 Except as expressly set out in this Agreement or as permitted by any local law, the Licensee undertakes not to: (a) sell, rent, lease, sublicense, assign or transfer its rights in the Agent, or make the Agent available to any third party other than by deployment on Managed Systems as permitted under clause 2; (b) disassemble, decompile, reverse-engineer or create derivative works based on the Agent, except to the extent essential for interoperability or in respect of Open Source Components; (c) modify, adapt or translate the Agent, or remove or alter any proprietary notices; (d) circumvent, disable or interfere with the Agent's enrolment, security or update mechanisms, or use an Enrolment Token other than in connection with the Licensee's own tenant; (e) use the Agent other than in connection with the Platform; or (f) fail to comply with all applicable technology control or export laws and regulations.

4. Relationship with the Platform Agreement

4.1 This Agreement governs the Agent. The Platform Agreement governs the Licensee's access to and use of the Platform, including the generation and management of Enrolment Tokens. Nothing in this Agreement grants any right to access or use the Platform.

4.2 The Agent is licensed exclusively under this Agreement. For the purposes of the Platform Agreement, the Agent does not constitute an App and no licence to the Agent is granted under the Platform Agreement. In the event of any conflict between this Agreement and the Platform Agreement in relation to the Agent, this Agreement prevails; in relation to the Platform, the Platform Agreement prevails.

4.3 Collected Data received by the Platform is processed under the Platform Agreement and the DPA. In relation to the processing of personal data, the DPA prevails over this Agreement to the extent of any conflict.

4.4 Except as stated in clause 11.2, no warranty, indemnity, support or service level commitment in the Platform Agreement applies to the Agent, including, for the avoidance of doubt, the intellectual property indemnity in the Platform Agreement.

5. Enrolment Tokens and Security

5.1 Enrolment Tokens are access credentials. The Licensee shall keep Enrolment Tokens confidential, use them only to enrol Managed Systems to its own tenant, and may rotate or revoke them through the Platform at any time.

5.2 The Licensee is responsible for all Agent instances enrolled using its Enrolment Tokens and for all Collected Data transmitted by those instances.

5.3 Licensor may suspend or revoke Enrolment Tokens, or suspend an Agent instance's access to the Platform, where reasonably required for security reasons or in the event of suspected breach of this Agreement.

6. Data Collection and Processing

6.1 The Agent collects Collected Data from Managed Systems and transmits it over encrypted connections to the Regional Instance associated with the Enrolment Token, as described in the Documentation. The categories of data collected, and the collection intervals, are set out in the Documentation.

6.2 As between the parties, the Licensee (or its Managed Client, as applicable) is the controller of any personal data within Collected Data, and Licensor processes such personal data as processor or sub-processor in accordance with the DPA, which is incorporated into this Agreement by reference.

6.3 The Licensee is responsible for ensuring that it has a lawful basis for the collection of Collected Data from each Managed System, for providing any notices required by applicable law to its personnel and to the personnel of Managed Clients, including in relation to software usage, execution history and user session data, and for completing any consultations required by applicable law prior to deployment.

6.4 The Agent transmits operational logs to Licensor by default for troubleshooting, security and service improvement purposes. Log shipping may be disabled as described in the Documentation. To the extent such logs contain personal data, they are processed in accordance with the DPA.

7. Updates

7.1 The Agent checks for and installs Updates automatically, retrieving them from Licensor's release infrastructure, which may include third-party hosting services identified in the Documentation. The Licensee consents to the automatic download and installation of Updates without further notice.

7.2 Licensor reserves the right at any time to make any improvement, substitution or modification in the design or configuration of the Agent, provided that such change shall not result in any material reduction in the core functionality of the Agent.

7.3 Restricting the Agent's network access to the endpoints listed in the Documentation may prevent Updates from being applied or cause the Agent to stop functioning. The Licensee deploys the Agent in restricted network environments at its own risk.

8. Open Source Components

8.1 The Agent includes, or may retrieve, Open Source Components that are licensed under their own terms. Those terms apply to the relevant components in place of clauses 2 and 3 of this Agreement to the extent of any conflict, and nothing in this Agreement restricts any rights granted to the Licensee under them.

8.2 Applicable open source licence texts and attribution notices are included in the installation packages or identified in the Documentation.

9. Intellectual Property Rights

9.1 All Intellectual Property Rights in the Agent and the Documentation, other than in Open Source Components, belong to Licensor or its licensors. The Agent is licensed, not sold. The Licensee has no Intellectual Property Rights in the Agent other than the right to use it in accordance with this Agreement.

9.2 The Licensee acknowledges that it has no right to access the Agent in source code form, except in respect of Open Source Components to the extent provided under their own licence terms.

9.3 Licensor may use any feedback or suggestions relating to the Agent without restriction or obligation.

10. Warranty Disclaimer

10.1 Licensor warrants that it has the rights and authority necessary to make the Agent available under this Agreement.

10.2 Except as expressly provided in clause 10.1, the Agent is provided free of charge, "as is" and as available. To the maximum extent permitted by applicable law, Licensor disclaims all other warranties, express or implied, including any implied warranties of non-infringement, merchantability or fitness for a particular purpose, and does not warrant that the Agent will operate uninterrupted or error-free or that it is compatible with every environment.

10.3 The Agent is not designed or intended for high-risk use scenarios where failure could reasonably lead to death, serious bodily injury, or severe damage to property or the environment.

11. Support

11.1 The Agent is provided free of charge and no standalone support or service level commitment applies to it.

11.2 Where the Licensee holds a paid subscription to the Platform, support for the Agent is provided in accordance with the support terms of the Platform Agreement, provided that such support covers the Agent software only and excludes the Managed Systems on which it runs, their operating systems, and the Licensee's network and deployment tooling.

12. Limitation of Liability

12.1 Nothing in this Agreement excludes or limits either party's liability for death or personal injury caused by negligence, for fraud or fraudulent misrepresentation, or for any liability that cannot be excluded or limited under applicable mandatory law.

12.2 Subject to clause 12.1, neither party shall be liable to the other for any indirect or consequential damages, including lost revenues, lost profits, business interruption, or loss of business information or data, and neither party shall be liable for any delay or default caused by conditions beyond its reasonable control, including any Force Majeure event.

12.3 Subject to clause 12.1 and reflecting that the Agent is provided free of charge: (a) where a Platform Agreement is in force between the parties, Licensor's total aggregate liability under or in connection with this Agreement shall count towards, and shall in no event exceed, the aggregate liability cap set out in the Platform Agreement; and (b) in all other cases, Licensor shall have no liability whatsoever under or in connection with this Agreement, howsoever arising.

12.4 No indemnity is granted by Licensor under this Agreement.

13. Term and Termination

13.1 This Agreement takes effect on the earlier of the Licensee's acceptance as described above and the first installation of the Agent, and continues until terminated (the Term).

13.2 This Agreement terminates automatically if the Licensee ceases to hold an active account on the Platform or if the Platform Agreement terminates or expires.

13.3 Either party may terminate this Agreement on thirty (30) days' written notice. Licensor may suspend or terminate this Agreement with immediate effect where reasonably required for security reasons or where the Licensee is in material breach. Licensor may discontinue the Agent, in whole or in part, on reasonable notice.

13.4 On termination, the Licensee shall cease all use of the Agent and uninstall it from all Managed Systems. Clauses 3, 4, 6.2, 8, 9, 10, 12, 14 and 15 survive termination.

14. Compliance

14.1 The Licensee warrants that it has, and will maintain for the duration of each deployment, all rights, consents and authority necessary to install and operate the Agent on each Managed System, including systems belonging to Managed Clients.

14.2 The Licensee shall comply with all applicable laws in connection with its deployment and use of the Agent, including all applicable technology control, sanctions and export laws and regulations.

15. General

15.1 Notices. All notices shall be in writing. Email is agreed as a valid means of formal notice. Notices to Licensor: contact@licenseware.io.

15.2 Confidentiality. Any Confidential Information exchanged between the parties in connection with the Agent is governed by the confidentiality provisions of the Platform Agreement.

15.3 Amendments. Licensor may update this Agreement from time to time by publishing the updated version at https://licenseware-collector.com/ and including it with subsequent releases of the Agent. Continued use of the Agent following the effective date of an update constitutes acceptance of the updated Agreement.

15.4 Assignment. The Licensee may not assign or transfer this Agreement without Licensor's prior written consent. Licensor may assign this Agreement to an affiliate or in connection with a merger, acquisition or sale of assets.

15.5 Severability. If any provision of this Agreement is held invalid or unenforceable, the remainder shall continue in full force and effect to the fullest extent allowed by law.

15.6 Entire agreement. This Agreement constitutes the entire agreement between the parties in relation to the Agent and supersedes any prior agreements relating to the Agent, without affecting the Platform Agreement.

15.7 Governing law and jurisdiction. This Agreement and any dispute or claim arising out of or in connection with it shall be governed by the laws of Romania, as an EU member state. Each party irrevocably submits to the exclusive jurisdiction of the Romanian courts. The parties confirm that they are each acting in the course of their business and that this Agreement is not a consumer contract.

Definitions and Interpretation

TermDefinition
AgentThe Licenseware Collector agent software made available at https://licenseware-collector.com/ or through the Platform, including bundled components and all Updates.
AppHas the meaning given in the Platform Agreement.
Collected DataSystem, hardware and software inventory data, software usage and execution history, running process and user session data, and related metadata collected by the Agent from Managed Systems and transmitted to the Platform, together with the Agent's operational logs.
DocumentationThe Agent documentation published at https://licenseware-collector.com/ and https://help.licenseware.io/, as updated from time to time.
DPAThe Licenseware Data Processing Addendum available at https://licenseware.io/legal/#data-protection-agreement.
Enrolment TokenAn API key or enrolment token generated through the Platform that registers an Agent instance to the Licensee's tenant.
Force MajeureAny cause beyond the reasonable control of the affected party including acts of God, war, terrorism, fire, flood, epidemic, pandemic, and communication failures.
Intellectual Property RightsAll patents, rights to inventions, copyright, moral rights, trade-marks, business names, domain names, rights in designs, rights in computer software, database rights, and all other intellectual property rights, whether registered or unregistered, throughout the world.
Managed ClientA third party to whom the Licensee provides IT, software asset management or managed services under a written agreement, where the Licensee is an authorised partner of Licensor.
Managed SystemA system owned or controlled by the Licensee, or a system of a Managed Client that the Licensee is authorised to manage and on which the Licensee is authorised to install software.
Open Source ComponentsThird-party components included with, or retrieved by, the Agent that are licensed under open source licence terms, including osquery, as identified in the Documentation or in the notices accompanying the Agent.
PlatformThe Licenseware SaaS platform, including its Regional Instances as described in the DPA.
Platform AgreementThe agreement or agreements governing the Licensee's access to and use of the Platform, including the Licenseware End User Licence Agreement, any Order Form, and any applicable partner or reseller agreement, together with the DPA.
TermHas the meaning given in clause 13.1.
UpdatesAll updates, upgrades, bug fixes, error corrections, enhancements and other modifications to the Agent.