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+
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.
# All-users (typical IT deployment, requires admin): Copy-Item -Recurse '\\fileshare\Tatsoft.FrameworX' 'C:\Program Files\WindowsPowerShell\Modules\Tatsoft.FrameworX' Import-Module Tatsoft.FrameworX |
The module is also dropped under <InstallDir>\Tools\PowerShell\Tatsoft.FrameworX\ by future FrameworX installer revisions.
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 |
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 |
Cmdlet | Wraps | Notes |
|---|---|---|
|
| Maps Inno exit codes to a structured result. Exit code 3010 = success + reboot required. |
|
| Auto-detects install directory from HKLM. |
Cmdlet | Wraps |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Cmdlet | Calls |
|---|---|
| (no HTTP — stores JWT and base URL in module state) |
| Opens browser to |
| (no HTTP — clears module state, restores TLS validation) |
Cmdlet | Calls |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Cmdlet | Calls |
|---|---|
|
|
|
|
|
|
|
|
|
|
Cmdlet | Calls |
|---|---|
|
|
|
|
|
|
Cmdlet | Calls |
|---|---|
|
|
|
|
|
|
Cmdlet | Calls |
|---|---|
|
|
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 captures the JWT redirect via a localhost HttpListener. The named provider must be configured in MachineSettings/SolutionCenterApi-OidcProviders.json on 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.
The SolutionCenter API ships default-OFF in 10.1.5 GA. API cmdlets surface 503 service-unavailable until the operator sets SolutionCenterApi.Enabled = true in TWebServices machine settings AND the running build is >= MinSafeBuildForSolutionCenterApi. Service-lifecycle cmdlets (Install-FrameworX*) are unaffected by the gate. Get-FrameworXOpenApi is anonymous and bypasses the gate.
PowerShell 7+: Connect-FrameworX -SkipCertificateCheck is honored per-call (Invoke-RestMethod -SkipCertificateCheck). Production deployments should use a properly-signed certificate.
PowerShell 5.1: -SkipCertificateCheck installs a process-wide ServicePointManager.ServerCertificateValidationCallback, restored when Disconnect-FrameworX runs. The module also force-enables TLS 1.2 (the PS 5.1 default rejects modern endpoints).
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.
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).
IT Deployment RunBook — the broader IT Ops guide.
SolutionCenter API Reference — full API spec, OpenAPI doc, scope model.