How to Install PowerShell Core

July 28, 2019   |   by admin

Nowadays, sysadmins are required to know more than one operating system. That used to mean learning more than a few shell scripting languages. PowerShell Core is changing that.

It’s no longer necessary to learn a new scripting language to support heterogeneous environments with PowerShell Core. PowerShell Core is cross-platform meaning it can be installed on Windows, Linux and other operating systems.

PowerShell Core is supported on Windows, macOS, and Linux. It’s open-source, built for heterogeneous environments and the hybrid cloud. PowerShell Core has recently become available on Windows internet of things (IoT) as well.

The cross-platform nature of PowerShell Core means that scripts that you write will run on any supported operating system.

PowerShell Core vs. Windows PowerShell

The main difference between Windows PowerShell and PowerShell Core is the platform they are built on.

Windows PowerShell is built on top of the .NET frameWork. Because of that dependency, it’s only available on Windows and is launched as powershell.exe.

PowerShell Core is built on .NET Core and is available cross platform and is launched as pswh.exe.

Installing PowerShell Core

There are different processes to get PowerShell Core installed on various operating systems. Let’s cover each one.

Windows

To install PowerShell Core on Windows, navigate to the GitHub repository and download the .msi package appropriate for your system. Then run through the wizard. Easy peasy.

Windows IoT

Windows Iot devices already have PowerShell installed which we will use for installing Powershell Core

#Enter a psession to the device
$s = New-PSSession -ComputerName <deviceIp> -Credential Administrator

#Copy the file to the device
Copy-Item .\PowerShell-6.1.0-win-arm32.zip -Destination u:\users\administrator\Downloads -ToSession $s

#Connect to the device and expand the archive
Enter-PSSession $s
Set-Location u:\users\administrator\downloads
Expand-Archive .\PowerShell-6.1.0-win-arm32.zip

#Setup Remoting 
Set-Location .\PowerShell-6.1.0-win-arm32

# Be sure to use the -PowerShellHome parameter otherwise it'll try to create a new endpoint with Windows PowerShell 5.1
.\Install-PowerShellRemoting.ps1 -PowerShellHome .

# You'll get an error message and will be disconnected from the device because it has to restart WinRM
# Connect to the device. Be sure to use the -Configuration parameter.  If you omit it, you will connect to Windows PowerShell 5.1
Enter-PSSession -ComputerName <deviceIp> -Credential Administrator

Copy

For Linux distributions, it just a matter of adding the repository and installing with the package manager.

Ubuntu, Debian

# Download the Microsoft repository GPG keys
wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb

# Register the Microsoft repository GPG keys
sudo dpkg -i packages-microsoft-prod.deb

# Update the list of products
sudo apt-get update

# Install PowerShell
sudo apt-get install -y powershell

# Start PowerShell
pwsh

CentOS and RedHat

# Register the Microsoft RedHat repository
curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo

# Install PowerShell
sudo yum install -y powershell

# Start PowerShell
pwsh

OpenSUSE

# Register the Microsoft signature key
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc

# Add the Microsoft Repository
zypper ar https://packages.microsoft.com/rhel/7/prod/

# Update the list of products
sudo zypper update

# Install PowerShell
sudo zypper install powershell

# Start PowerShell
pwsh

Fedora

# Register the Microsoft signature key
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc

# Register the Microsoft RedHat repository
curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo

# Update the list of products
sudo dnf update

# Install a system component
sudo dnf install compat-openssl10

# Install PowerShell
sudo dnf install -y powershell

# Start PowerShell
pwsh

MacOS

For macOS, Homebrew is the preferred package manager. Installing Homebrew package manager is a single line command from a terminal, then install Powershell Core.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

#install PowerShell Core
brew cask install powershell

#start session
pwsh

Summary

Learn to manage different platforms and OSs. It’ll only help your career. When you need a cross-platform scripting language, try out PowerShell Core to write once and deploy everywhere. It’s another tool in your toolbox.

If you don’t learn it, someone else will.

Leave Your Comment