Download

The JS7 PowerShell® Module is available:

  • from the PowerShell® Gallery at https://www.powershellgallery.com/packages/JS7

    PowerShell Gallery
    Find-Module -Name JS7
    Install-Module -Name JS7
  • from GitHub at https://github.com/sos-berlin/js7-cli-powershell
    • Download and extract the JS7 PowerShell® Module:
      • to a user's module location, for example for Windows C:\Users\<user-name>\Documents\WindowsPowerShell\Modules\ or /home/<user-name>/.local/share/powershell/Modules for a Linux environment, see $env:PSModulePath for predefined module locations.
      • or to a location that is available to all users, e.g. C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
      • or to an arbitrary location that is to be specified later on when importing the module.
    • The name of the downloaded archive (.zip, .tar.gz) and the name of included top-level folder might differ according to releases.
      • For a release 2.0.8, the archive name could be js7-cli-powershell-v.2.0.8.zip and the included top-level folder would be js7-cli-powershell-v.2.0.8.
      • Having extracted the archive, rename the top-level folder to JS7. This is required as JS7 is the effective module name.

Introduction

The JS7 PowerShell® Module can be used to control JS7 instances and workflow-related objects.

The module supports Windows PowerShell® FullCLR 5.1 and PowerShell® CoreCLR 6.x and 7.x for Windows, Linux and MacOS environments. It can be used with JS7 releases 2.x. The module is used for the following areas of operation:

  • providing bulk operations:
    • select orders and workflows
    • manage orders with the start, stop, suspend operations
    • deploy workflows
  • running orders and workflows:
    • add orders to workflows
  • managing Agents:
    • add Agents to Controllers
    • check Agent status
    • retrieve Agent job execution reports

Getting Started

Prerequisites

  • PS > Get-ExecutionPolicy
  • PS > Set-ExecutionPolicy RemoteSigned
    • The recommended execution policy for the JS7 PowerShell® Module.
    • Modifying the execution policy might require administrative privileges.
  • PS > Set-ExecutionPolicy bypass -Scope process
    • The recommended execution policy for use with jobs in JS7 workflows.

Import Module

  • PS > Import-Module JS7
    • loads the module from a location that is available with the PowerShell® module path,
    • see $env:PSModulePath for predefined module locations.
  • PS > Import-Module C:\some_module_location\JS7
    • loads the module from a specific location, absolute and relative paths can be used on all platforms.

HintYou can add the command Import-Module JS7 to your PowerShell® profile to have the module loaded on start of a PowerShell® session, see PowerShell CLI 1.1 - Use Cases - Credentials Management.

Use Web Service

As a first operation after importing the module it is necessary to execute the  Connect-JS7 cmdlet.

  • PS > Connect-JS7 -Url <Url> -AskForCredentials
    • specifies the URL for the JOC Cockpit where the JS7 - REST Web Service API is available and asks interactively for credentials. The default JOC Cockpit account is root with the password root.
  • PS > Connect-JS7 <Url> <Credentials> <ControllerId> or PS > Connect-JS7 -Url <Url> -Credentials <Credentials> -Id <ControllerId>
    • -Url: specifies the URL of the JOC Cockpit which is the same URL that you use when opening the JOC Cockpit GUI in your browser, e.g. http://localhost:4446. When omitting the protocol (HTTP/HTTPS) for the URL then HTTP is used.
    • -Credentials: specifies the credentials, for example the user account and password that are used to connect to the JOC Cockpit.
      • A credential object can be created using keyboard input like this:
        • Set-JS7Credentials -AskForCredentials
      • A credential object can be created like this:
        • $credentials = ( New-Object -typename System.Management.Automation.PSCredential -ArgumentList 'root', ( 'root' | ConvertTo-SecureString -AsPlainText -Force) )
        • This example uses the default account root and password root.
        • A possible location for the above code is a user's PowerShell® Profile that would be executed for a PowerShell® session.
      • Credentials can be forwarded with the -Url parameter like this:
        • Connect-JS7 -Url http://root:root@localhost:4446
        • It is considered insecure to specify account and password with the URL .
      • You will find more examples including use of HTTPS connections with SSL certificates in the JS7 - How to connect to JOC Cockpit using the PowerShell Module article.
    • -Id: specifies the Controller ID that is registered with the JOC Cockpit. As the JOC Cockpit can manage a number of Controllers the -Id parameter can be used to select the relevant Controller.
  • The JS7 PowerShell® module allows cmdlets to be executed for the specified JOC Cockpit, Controller and Agents independently of the server and operating system that the respective JS7 product is operated on. For example, users can invoke PowerShell® cmdlets on Windows to manage a JS7 Controller running on a Linux box and vice versa. As an exception to this rule you cannot start a remote JS7 Controller instance and you cannot start a remote JS7 Windows service, however, you can restart, terminate and abort any JS7 Controller instance on any platform.

Run Commands

The JS7 PowerShell® module provides a number of cmdlets, see PowerShell CLI 2.0 - Cmdlets. Return values of cmdlets generally correspond to the JS7 - REST Web Service API.

  • The complete list of cmdlets is available with the command:
    • PS > Get-Command -Module JS7
  • Cmdlets come with a full name that includes the term JS7:
    • PS > Get-JS7ControllerStatus
  • The term JS7 can further be omitted if the resulting alias does not conflict with existing cmdlets:
    • PS > Get-ControllerStatus
  • Should conflicts occur with existing cmdlets from other modules then no conflicting aliases will be created.
  • Help information for a given cmdlet is available with:
    • PS > Get-Help Get-JS7ControllerStatus -detailed
    • PS > man Get-JS7ControllerStatus
      • An alias for the above Get-Help command.

Examples

Find some typical use cases for the JS7 PowerShell Module. More complex use cases are available for example from JS7 - How To - Reporting.

  • PS > Get-JS7ControllerStatus -Display
    • shows summary information for a JS7 Controller.
  • PS > (Get-JS7Workflow).count
    • shows the number of workflows that are available.
  • PS > (Get-JS7AgentInstance).count
    • shows the number of Agents that are available.
  • PS > $orders = (Get-JS7Order -Folder /my_orders -Recursive | Suspend-JS7Order)
    • retrieves orders from the my_orders folder and any sub-folders with orders found that will be suspended. The list of affected orders is returned.
  • PS > $orders | Stop-JS7Order
    • cancels orders based on a list that has previously been retrieved.

Manage Log Output

JS7 cmdlets consider verbosity and debug settings.

  • PS > $VerbosePreference = "Continue"
    • This will cause verbose output to be created from cmdlets.
  • PS > $VerbosePreference = "SilentlyContinue"
    • The verbosity level is reset.
  • PS > $DebugPreference = "Continue"
    • This will cause debug output to be created from cmdlets.
  • PS > $DebugPreference = "SilentlyContinue"
    • The debug level is reset.

Further Resources


  • No labels