---
title: "Installation"
description: "Install, upgrade, inventory and remove the CAT PowerShell module"
url: "https://docs.justcat.it/reference/powershell-module/installation/"
---
# Installation


The module is installed with `Install-Module`, upgraded with `Update-Module` and removed with `Uninstall-Module`. No administrator permissions are needed when installing into `CurrentUser` scope.

## Prerequisites

### PowerShell 7

The module declares `PowerShellVersion = '7.4'` and `CompatiblePSEditions = 'Core'`. Windows PowerShell 5 is not supported: `Install-Module CAT` completes there without an error, but the module does not work.

| Version of CAT | Required version of PowerShell |
|---|---|
| `0.*` | 7.2 |
| `1.*` | 7.4 |
| `2.*` | 7.4 |

PowerShell 7 releases with long-term support come out every second year and are supported for three years, so a PowerShell upgrade is needed at least once in three years.

To find out which version is running, read the `PSVersion` row of:

```powershell
$PSVersionTable
```

Microsoft's installation instructions for PowerShell 7 are at <https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-windows>.

If PowerShell 7 cannot be installed, use [CAT CLI](https://docs.justcat.it/reference/cat-cli/introduction/ "CAT CLI") instead — it is self-contained and has no dependency on PowerShell.

### Operating system

Windows 10 or later and Windows Server 2016 or later, on both clients and servers. The module also runs on the Linux distributions where Microsoft supports PowerShell 7 — see [CAT on Linux](https://docs.justcat.it/how-to-guides/licensing-and-admin/cat-on-linux/ "CAT on Linux").

### Provider drivers

Some data source providers need additional software installed on the machine. The requirement belongs to the provider, not to the module — each provider page states what it needs, and the [Providers overview](https://docs.justcat.it/reference/data-sources/providers/overview/ "Providers overview") marks which providers need a driver.

## Install

```powershell
Install-Module CAT -AcceptLicense -AllowClobber
```

`-Scope` decides who gets the module. `AllUsers` requires administrator permissions, `CurrentUser` does not:

```powershell
Install-Module CAT -Scope AllUsers -AcceptLicense -AllowClobber
# or
Install-Module CAT -Scope CurrentUser -AcceptLicense -AllowClobber
```

`-RequiredVersion` installs one specific version; `-MinimumVersion` and `-MaximumVersion` bound the range:

```powershell
$CatVersion = '3.0.0'
Install-Module CAT -RequiredVersion $CatVersion -AcceptLicense -AllowClobber
```

Several versions of the module can be installed side by side — for example the version used in production and the latest one. `-Force` installs another version next to an existing one and suppresses the confirmation prompt that appears while the PowerShell Gallery is not a trusted repository (it is not, by default):

```powershell
Install-Module CAT -Force -AcceptLicense -AllowClobber
```

> **🙀:** **In automated processes, always pin the version.**

```powershell
Install-Module CAT -RequiredVersion '3.0.0'
Import-Module CAT -RequiredVersion '3.0.0'
```

Breaking changes may appear between major versions. Pinning both the install and the import keeps a pipeline on the version the tests were developed against.



## List what is installed

```powershell
Get-Module CAT -ListAvailable
```

The command lists every installed version of the module. To load one of them into the session, name it:

```powershell
Import-Module CAT -RequiredVersion '3.0.0'
```

Without `-RequiredVersion`, `Import-Module CAT` loads the highest installed version. Importing is always required — see [Install and import](https://docs.justcat.it/reference/powershell-module/introduction/#install-and-import "Install and import") on the Introduction page.

## Upgrade

```powershell
Update-Module -Name CAT
```

## Uninstall

One version:

```powershell
Uninstall-Module CAT -RequiredVersion '2.4.0'
```

All installed versions:

```powershell
Get-Module CAT -ListAvailable | Uninstall-Module -Force
```

Uninstalling removes the module only. Project files, test definitions and results stay where they are.

