近年のIT業界では、異なるOS間での互換性や柔軟なスクリプトの実行が求められることが増えてきました。
特にクラウドやリモートワークが普及した今、Windows、macOS、Linuxなど様々なプラットフォームで同一のスクリプトが動作することが重視されています。
このような背景から、MicrosoftはPowerShellの新しいバージョン「PowerShell Core」をリリースしました。
本記事では、PowerShell Coreの基本導入方法と、プラットフォーム間の互換性について解説します。
PowerShell Coreとは?
PowerShell Coreは、Microsoftが開発したクロスプラットフォーム対応のシェルおよびスクリプト言語です。
従来のWindows PowerShellはWindows専用でしたが、PowerShell Coreはオープンソースであり、Windows、macOS、Linuxの各OS上で動作することができます。
このように、異なるOS間で同一のコマンドやスクリプトが実行可能となり、スクリプトを使った業務の自動化がさらに広がりました。
PowerShell Coreの導入方法
1. Windowsへのインストール
- インストール用のリリースページへアクセス
公式のPowerShell GitHubリポジトリから最新のリリースページにアクセスし、Windows用のインストーラー(.msiファイル)をダウンロードします。 - インストールの実行
ダウンロードした.msiファイルをダブルクリックしてインストールウィザードを起動し、画面に従ってインストールを完了します。 - インストール確認
インストールが完了したら、コマンドプロンプトまたはPowerShellを開き、次のコマンドを実行します。
正しくインストールされていれば、バージョン情報が表示されます。pwsh -version
2. macOSへのインストール
- Homebrewのインストール
macOSでPowerShell Coreをインストールする最も簡単な方法は、Homebrewを使用することです。まだインストールしていない場合は以下のコマンドでインストールできます。/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- PowerShellのインストール
Homebrewがインストールされたら、以下のコマンドでPowerShell Coreをインストールします。brew install --cask powershell
- インストール確認
インストールが完了したら、ターミナルで以下のコマンドを実行します。
正常にインストールされていれば、バージョン情報が表示されます。pwsh -version
3. Linuxへのインストール
Linuxにはさまざまなディストリビューションがあるため、今回は一般的なUbuntuでのインストール方法を解説します。
- Microsoftのリポジトリの追加
PowerShell Coreのリポジトリを追加するために、以下のコマンドを順に実行します。sudo apt update
sudo apt install -y wget apt-transport-https software-properties-common
wget -q "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb"
sudo dpkg -i packages-microsoft-prod.deb - PowerShellのインストール
リポジトリを追加した後、PowerShell Coreをインストールします。sudo apt update
sudo apt install -y powershell - インストール確認
インストールが完了したら、以下のコマンドで確認します。
正常にインストールされていれば、バージョン情報が表示されます。pwsh -version
PowerShell Coreの基本的な使い方
インストールが完了したら、PowerShell Coreでいくつかの基本的なコマンドを試してみましょう。
指定ディレクトリ内のファイルとフォルダの一覧を表示します。
Get-ChildItem
test.txtという名前の空のファイルを作成します。
New-Item -Path "./test.txt" -ItemType "File"
test.txtファイルの内容を表示します。
Get-Content -Path "./test.txt"
プラットフォーム間の互換性
PowerShell Coreは、異なるプラットフォーム間での互換性を確保するために、同一のコマンドやスクリプトが複数のOSで動作するよう設計されています。
しかし、すべてのWindows PowerShellのコマンドがPowerShell Coreで使用できるわけではないため、互換性のあるコマンドレットやモジュールを利用することが推奨されます。
特にGet-ChildItemやGet-Contentなどの基本的なコマンドはWindows、macOS、Linuxいずれでも使用可能です。
演習問題
PowerShell Coreの基本的な操作やプラットフォーム間の互換性について理解を深めるために、以下の演習問題に取り組んでみましょう。
- PowerShell Coreのインストール確認
PowerShell Coreが正しくインストールされているか確認するコマンドを実行し、バージョン番号を取得してください。 - ディレクトリの内容を表示
PowerShell Coreを使用して、現在のディレクトリにあるファイルやフォルダの一覧を表示してください。 - ファイルの作成と削除
PowerShell Coreで、exercise.txt
というファイルを作成し、その後、ファイルを削除してください。 - プラットフォーム間互換性の確認
macOSまたはLinux上でPowerShell Coreを使用し、Windowsと同様のコマンドが実行できるか確認してください。
解答例
- PowerShell Coreのインストール確認
pwsh -version
PowerShell Coreのバージョンが表示されれば、正しくインストールされています。
- ディレクトリの内容を表示
Get-ChildItem
現在のディレクトリ内にあるファイルやフォルダの一覧が表示されます。
- ファイルの作成と削除
- ファイルの作成:
powershell New-Item -Path “./exercise.txt” -ItemType “File” - ファイルの削除:
powershell Remove-Item -Path “./exercise.txt”
- ファイルの作成:
- プラットフォーム間互換性の確認
macOSまたはLinux上でGet-ChildItem
やNew-Item
コマンドを実行して、Windowsでの動作と同様の結果が得られるか確認してください。
まとめ
PowerShell Coreの導入とそのプラットフォーム間互換性について学ぶことで、異なるOSでのスクリプト実行が可能になり、業務の効率化が期待できます。
ぜひPowerShell Coreを活用して、マルチプラットフォーム対応のスクリプト作成に挑戦してみてください。