Installing PowerShell on macOS

PowerShell 7.0 or higher require macOS 10.13 and higher. All packages are available on our GitHub releases page. After the package is installed, run pwsh from a terminal. Before installing, check the list of Supported versions below.

Note

PowerShell 7.2 is an in-place upgrade that removes previous versions of PowerShell 6.x and 7.x.

The /usr/local/microsoft/powershell/6 folder is replaced by /usr/local/microsoft/powershell/7.

If you need to run an older version of PowerShell side-by-side with PowerShell 7.2, install the version you want using the binary archive method.

Installation of latest stable release via Homebrew on macOS 10.13 or higher

There are several ways to install PowerShell on macOS. Choose one of the following methods:

After installing PowerShell, you should install OpenSSL. OpenSSL is needed for PowerShell WSMan remoting.

If the brew command is not found, you need to install Homebrew following their instructions.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Now, you can install PowerShell:

brew install --cask powershell

Finally, verify that your install is working properly:

pwsh

When new versions of PowerShell are released, update Homebrew's formulae and upgrade PowerShell:

brew update
brew upgrade powershell --cask

Note

The commands above can be called from within a PowerShell (pwsh) host, but then the PowerShell shell must be exited and restarted to complete the upgrade and refresh the values shown in $PSVersionTable.

Installation of latest preview release via Homebrew on macOS 10.13 or higher

After you've installed Homebrew, you can install PowerShell. First, install the Cask-Versions package that lets you install alternative versions of cask packages:

brew tap homebrew/cask-versions

Now, you can install PowerShell:

brew install --cask powershell-preview

Finally, verify that your install is working properly:

pwsh-preview

When new versions of PowerShell are released, update Homebrew's formulae and upgrade PowerShell:

brew update
brew upgrade powershell-preview --cask

Note

The commands above can be called from within a PowerShell (pwsh) host, but then the PowerShell shell must be exited and restarted to complete the upgrade. and refresh the values shown in $PSVersionTable.

Installing PowerShell using the Homebrew tap method is also supported for stable and LTS versions.

brew install powershell/tap/powershell

You can now verify your install

pwsh

When new versions of PowerShell are released, run the following command.

brew upgrade powershell

Note

Whether you use the cask or the tap method, when updating to a newer version of PowerShell, use the same method you used to initially install PowerShell. If you use a different method, opening a new pwsh session will continue to use the older version of PowerShell.

If you do decide to use different methods, there are ways to correct the issue using the Homebrew link method.

Installation via Direct Download

PowerShell 7.2 adds support for the Apple M1 processor. Download the install package from the releases page onto your computer. The links to the current versions are:

You can double-click the file and follow the prompts, or install it from the terminal using the following commands. Change the name of the file to match the file you downloaded.

sudo installer -pkg powershell-7.1.5-osx-x64.pkg -target /

Install OpenSSL. OpenSSL is needed for PowerShell remoting and CIM operations.

Install as a .NET Global tool

If you already have the .NET Core SDK installed, it's easy to install PowerShell as a .NET Global tool.

dotnet tool install --global PowerShell

The dotnet tool installer adds ~/.dotnet/tools to your PATH environment variable. However, the currently running shell does not have the updated PATH. You should be able to start PowerShell from a new shell by typing pwsh.

Install OpenSSL. OpenSSL is needed for PowerShell remoting and CIM operations.

Binary Archives

PowerShell binary tar.gz archives are provided for the macOS platform to enable advanced deployment scenarios. When you install using this method you must also manually install any dependencies.

Install OpenSSL. OpenSSL is needed for PowerShell remoting and CIM operations.

Note

You can use this method to install any version of PowerShell including the latest:

Installing binary archives on macOS

Download the install package from the releases page onto your computer. The links to the current versions are:

Use the following commands to install PowerShell from the binary archive. Change the download URL to match the version you want to install.

# Download the powershell '.tar.gz' archive
curl -L -o /tmp/powershell.tar.gz https://github.com/PowerShell/PowerShell/releases/download/v7.1.5/powershell-7.1.5-osx-x64.tar.gz

# Create the target folder where powershell is placed
sudo mkdir -p /usr/local/microsoft/powershell/7.1.5

# Expand powershell to the target folder
sudo tar zxf /tmp/powershell.tar.gz -C /usr/local/microsoft/powershell/7.1.5

# Set execute permissions
sudo chmod +x /usr/local/microsoft/powershell/7.1.5/pwsh

# Create the symbolic link that points to pwsh
sudo ln -s /usr/local/microsoft/powershell/7.1.5/pwsh /usr/local/bin/pwsh

Installing dependencies

OpenSSL is required for PowerShell remoting and CIM operations. You can install OpenSSL via MacPorts if needed.

Note

MacPorts and Homebrew can have problems when used to together on the same system. However, Homebrew does not have a package for OpenSSL 1.0. For more information, see the MacPorts FAQ.

  1. Install the Xcode command-line tools. The Xcode tools are required by MacPorts.

    xcode-select --install
    
  2. Install MacPorts. If you need instructions, refer to the installation guide.

  3. Update MacPorts by running sudo port selfupdate.

  4. Upgrade MacPorts packages by running sudo port upgrade outdated.

  5. Install OpenSSL by running sudo port install openssl10.

  6. Link the libraries to make them available to PowerShell:

    sudo mkdir -p /usr/local/opt/openssl
    sudo ln -s /opt/local/lib/openssl-1.0 /usr/local/opt/openssl/lib
    

Uninstalling PowerShell

If you installed PowerShell with Homebrew, use the following command to uninstall:

brew uninstall --cask powershell

If you installed PowerShell via direct download, PowerShell must be removed manually:

sudo rm -rf /usr/local/bin/pwsh /usr/local/microsoft/powershell

To remove the additional PowerShell paths, refer to the paths section in this document and remove the paths using sudo rm.

Note

This is not necessary if you installed with Homebrew.

Paths

  • $PSHOME is /usr/local/microsoft/powershell/7.1.5/
  • User profiles are read from ~/.config/powershell/profile.ps1
  • Default profiles are read from $PSHOME/profile.ps1
  • User modules are read from ~/.local/share/powershell/Modules
  • Shared modules are read from /usr/local/share/powershell/Modules
  • Default modules are read from $PSHOME/Modules
  • PSReadLine history are recorded to ~/.local/share/powershell/PSReadLine/ConsoleHost_history.txt

The profiles respect PowerShell's per-host configuration. So the default host-specific profile exists at Microsoft.PowerShell_profile.ps1 in the same locations.

PowerShell respects the XDG Base Directory Specification on macOS.

Because macOS is a derivation of BSD, the prefix /usr/local is used instead of /opt. So, $PSHOME is /usr/local/microsoft/powershell/7.1.5/, and the symbolic link is placed at /usr/local/bin/pwsh.

Supported versions

The following table is a list of currently supported PowerShell releases and the versions of Windows they are supported on. These versions remain supported until either the version of PowerShell reaches end-of-support or the version of [macOS reaches end-of-support][eol-windows].

  • A ✅ indicates that the version of the OS or PowerShell is still supported
  • A ❌ indicates that the version of the OS or PowerShell isn't supported
  • A 🟡 indicates the version of PowerShell is no longer supported on that version of the OS
  • When both the version of the OS and the version of PowerShell have ✅, that combination is supported
macOS 7.0 (LTS) 7.1 (current) 7.2 (LTS-preview)
✅ macOS Big Sur 11.5
✅ macOS Catalina 10.15
✅ macOS Mojave 10.14
✅ macOS High Sierra 10.13

Support of macOS is defined by Apple. For more information, see:

PowerShell is supported on macOS for the following processor architectures:

macOS 7.0 (LTS) 7.1 (current) 7.2 (LTS-preview)
macOS Big Sur 11.5 x64 x64 x64, Arm64
macOS High Sierra 10.13+ x64 x64 x64

Installation support

Microsoft supports the installation methods in this document. There may be other methods of installation available from other sources. While those tools and methods may work, Microsoft cannot support those methods.

Additional Resources