Native PowerShell cmdlets for FrameworX — lifting IT deployment from raw .exe + /silent calls to one-liner cmdlets with Get-Help, parameter validation, pipeline composition, and structured exit-code handling.
Release Notes → IT Deployment RunBook → Tatsoft.FrameworX PowerShell Module Reference
Version 10.1.5+
Overview
Tatsoft.FrameworX is a single PowerShell module that wraps three existing FrameworX surfaces:
Surface | Wrapped CLI / endpoint | Audience |
|---|---|---|
Product lifecycle |
| IT / DevOps deploying FrameworX |
Service lifecycle |
| IT / DevOps managing Windows Services |
SolutionCenter API |
| Fleet operators, OEM admin tooling, central monitoring |
Compatible with PowerShell 5.1 (Windows PowerShell, ships with Windows) and PowerShell 7+ (cross-platform). The module is signed by Tatsoft and exports 33 cmdlets.
Install
# All-users (typical IT deployment, requires admin): Copy-Item -Recurse '\\fileshare\Tatsoft.FrameworX' 'C:\Program Files\WindowsPowerShell\Modules\Tatsoft.FrameworX' Import-Module Tatsoft.FrameworX
From FrameworX 10.1.6, the installer places the module under <InstallDir>\Tools\PowerShell\Tatsoft.FrameworX\. Import it by its path; nothing has to be registered on the machine:
Import-Module 'C:\Program Files\Tatsoft\FrameworX\Tools\PowerShell\Tatsoft.FrameworX'
Windows 10 and Windows 11 start with the execution policy Restricted, which refuses every script module. Windows Server starts with RemoteSigned, which loads the module. On a Restricted machine, run Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned first. It applies to the current shell only and changes no machine setting.
Quick start
Install on a fresh box
Install-FrameworX -InstallerPath C:\Setup\FrameworX-Setup.exe -InstallDir 'C:\Program Files\Tatsoft\FrameworX' Install-FrameworXWebServices Install-FrameworXRuntime -SolutionPath 'C:\Solutions\Plant1.tproj' -Profile Production
Manage solutions remotely
These cmdlets call the SolutionCenter API. They work on FrameworX 10.1.6 and later once an administrator enables the API. See the Activation gate section below.
Connect-FrameworX -Endpoint https://plant1-srv07:10108 -ServiceAccountToken $env:FX_TOKEN Get-FrameworXSolution Start-FrameworXSolution -Name Plant1SCADA -Profile Production Get-FrameworXSolution | Where-Object status -eq running | Stop-FrameworXSolution Disconnect-FrameworX
Cmdlets
Product lifecycle
Cmdlet | Wraps | Notes |
|---|---|---|
|
| Maps Inno exit codes to a structured result. Exit code 3010 = success + reboot required. |
|
| From FrameworX 10.1.6: without |
Service lifecycle (machine-local, requires admin)
Cmdlet | Wraps |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Session
Cmdlet | Calls |
|---|---|
| (no HTTP — stores JWT and base URL in module state) |
| Opens browser to |
| (no HTTP — clears module state, restores TLS validation) |
The session object the module keeps after Connect-FrameworX does not display the access token.
Solutions
Cmdlet | Calls |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
License
Cmdlet | Calls |
|---|---|
|
|
|
|
|
|
|
|
|
|
Machine settings
Cmdlet | Calls |
|---|---|
|
|
|
|
|
|
Server
Cmdlet | Calls |
|---|---|
|
|
|
|
|
|
Discovery
Cmdlet | Calls |
|---|---|
|
|
Authentication
The SolutionCenter API requires a JWT Bearer token on every call (RFC 9068 at+jwt). Two issuance paths:
Service-account JWT — pre-issued by your OEM admin tool, dropped on the box as a config file or held in an environment variable. Pass via
Connect-FrameworX -ServiceAccountToken <jwt>.OIDC interactive —
Connect-FrameworX -OidcProvider <name>opens the default browser to the configured IdP via/api/v1/auth/oidc/login, then receives the JWT, which the API posts as the form fieldtokento a localhostHttpListener. The named provider must be configured inSolutionCenterApi-OidcProviders.jsonin the installation folder of the target installation.
Scopes (assigned at issuance time): installation:read, installation:control, installation:files, installation:license, installation:machine, installation:admin. Scopes do not subsume each other.
Activation gate
The SolutionCenter API ships OFF. On FrameworX 10.1.6 and later, an administrator enables it in SolutionCenterApi-Settings.json in the installation folder of the target installation, and the API cmdlets on this page then work. Until then, API cmdlets surface 503 service-unavailable. The API cannot be enabled on FrameworX 10.1.5. See SolutionCenter API Reference for the settings file and the TLS requirement. Product-lifecycle and service-lifecycle cmdlets (Install-FrameworX* / Uninstall-FrameworX*) do not use the API and are unaffected by the gate. Get-FrameworXOpenApi is anonymous and bypasses the gate.
TLS notes
PowerShell 7+:
Connect-FrameworX -SkipCertificateCheckis honored per-call (Invoke-RestMethod -SkipCertificateCheck). Production deployments should use a properly-signed certificate.PowerShell 5.1: From FrameworX 10.1.6,
-SkipCertificateCheckis not supported and the command stops before it sends anything. Use a certificate the computer trusts, or run the command in PowerShell 7. The module also force-enables TLS 1.2 (the PS 5.1 default rejects modern endpoints).
Error handling
API calls failing with non-2xx responses raise terminating errors of id FrameworX.Api.HttpError. The error message includes the RFC 7807 Problem Details payload from the server. Catch with try { ... } catch { ... }:
try {
Get-FrameworXLicenseInfo
}
catch {
Write-Warning "License query failed: $($_.Exception.Message)"
}
CLI cmdlets (Install-* / Uninstall-*) raise terminating errors when TManageServices.exe reports a non-zero exit code (= number of failed operations) or when the Inno Setup installer reports a failure exit code.
Out of scope (v1.0 of this module)
File operations (
/api/v1/files/...) — chunked upload / download, exists, delete-solution. Wrapped in v1.1.Visual dashboard UI — tracked in a separate Tatsoft v2 work item.
MSI distribution package.
Bulk fan-out (managing many machines from a single shell).
Related
IT Deployment RunBook — the broader IT Ops guide.
SolutionCenter API Reference — full API spec, OpenAPI doc, scope model.