PowerShellとは
PowerShellとは、日本語ではパワーシェルとも呼ばれ、自動化や構成管理に便利なクロスプラットフォームのシェルスクリプトのことです。
PowerShellを使用すれば、運用コストの削減や業務効率の向上が期待できます。PowerShellの活用例として、連番のフォルダ作成・ログの監視・ファイル名の一括修正などが挙げられるでしょう。ここでは、PowerShellの概要やコマンドプロンプトとの違いについてわかりやすく紹介します。
【参考】:PowerShell ドキュメント - PowerShell | Microsoft Docs
PowerShellの概要
PowerShellとは、Microsoft社が開発したスクリプト言語であり、コマンドラインインタフェース(CUI) の1つです。CUIとは、コンピュータがユーザーに対して情報を提示したり、操作を受け付けたりする方法の1つで、全てのやり取りを文字によって行う方式を指します。
例えば、あるプログラムを起動・停止させたり、ファイルのパスを変更したりすることが可能です。また、PowerShellはコマンドによりコンピュータの制御を行えるため、キーボードのみで操作することができ、マウスは必要ありません。
PowerShellとコマンドプロンプトの違い
WindowsOSには、コマンドプロンプトというCUIもあります。しかし近年では、コマンドプロンプトだけではなく、PowerShellも搭載されているのが一般的です。
PowerShellとコマンドプロンプトの共通点はどちらもCUIという点です。PowerShellは、コマンドプロンプトが抱えている課題を改善して開発されているのが特徴です。
現在でもコマンドプロンプトを使用してコンピュータの制御を行うことはできますが、特に理由がなければPowerShellの利用をおすすめします。理由として、今後はコマンドプロンプトに代わってPowerShellが普及していくと予想されるということが挙げられます。
PowerShellでできること
PowerShellはCUIの1つであり、今後はコマンドプロンプトよりも普及していくと予想されていることは理解できたでしょうか。しかし、PowerShellで具体的に何ができるのか気になる方も少なくないでしょう。
ここでは、PowerShellでできることについてわかりやすく紹介します。
コマンドレットを使用できる
コマンドレットとは、PowerShellで使用できる軽量のコマンドのことです。コマンドレットは「動詞-名詞」という命名規則で作成されており、直感的にコマンドの内容を理解できるのが特徴です。
例えば、PowerShellで「Get-Command」というコマンドレットを実行すれば、コンピューターにインストールされている全てのコマンド一覧を取得することができます。
また、これまでコマンドプロンプトで使用してきたコマンドも利用できるため、PowerShellはコマンドプロンプトの上位互換とも言えるでしょう。さらに、初めてコマンドによるOS操作に触れるという方は、PowerShellを使用すれば、学習コストの削減にもつながるでしょう。
Microsoftのサービスを操作できる
PowerShellを使用すれば、「Microsoft 365」「Microsoft Exchange」などのMicrosoft社が提供しているクラウドサービスを操作できます。そのためPowerShellにより、メールボックスからユーザーデータを取得したり、ユーザーをグループ化したりすることが可能です。
また、フィルター処理をして自動化を行うこともできます。さらに企業で一元管理している多数のアカウント設定を一括変更できるため、PowerShellを業務に使用することも十分に可能です。
【参考】:Microsoft 365 の紹介 | Office アプリ、クラウド サービス、セキュリティの統合
【参考】:Microsoft Exchange | 企業に役立つ安全なビジネス メール サービス
パイプラインを使用して細かくコンピュータを制御できる
PowerShellのメリットの1つは、複数の命令を組み合わせる機能が備わっている点です。この機能をパイプラインと呼び、先行のコマンド結果をパイプラインを使用して、次のコマンドに受け渡すことが可能です。PowerShellではパイプラインを縦棒「|」で記述します。
例えば「Get-ChildItem」と「Out-File」というコマンドレットをパイプラインを使用して組み合わせれば、取得したファイル一覧情報の中から特定のテキストファイルを出力させることが可能です。
PowerShellではパイプラインを使用すれば、コンピュータで行う操作のほとんどをコマンド実行することができます。そのためコマンドプロンプトと比較して、PowerShellは細かくコンピュータの操作を制御することが可能です。
統合開発環境「PowerShell ISE」が備わっている
PowerShell ISEとは、PowerShell専用の統合開発環境で、WindowsOSに標準搭載されています。また統合開発環境とはIDEとも呼ばれ、一般的な複数の開発ツールをまとめたものです。
PowerShell ISEには、コードエディタ・実行環境・デバッグ環境など様々な開発環境が統合されています。PowerShellのスクリプトは「powershell.exe(PowerShellコンソール)」で実行できますが、複雑な動作を実行するにはPowerShell ISEが必要です。
PowerShell ISEを使用すれば、PowerShellのスクリプトを効率よく開発して実行することができます。
【参考】:Windows PowerShell ISE の紹介 - PowerShell | Microsoft Docs
PowerShell入門
PowerShellでできることは様々であり、コマンドプロンプトと比較するとメリットが数多くあることは理解できたでしょうか。ここではPowerShell入門ということで、PowerShellの使い方や基本文法についてわかりやすく紹介します。
PowerShellの使い方
まずPowerShellを使用するには、起動させる必要があります。PowerShellを起動するには、Windowsのスタートメニューから「Windows PowerShell」をクリックし、「Windows PowerShell」のアプリを右クリックして「管理者として実行する」を選択しましょう。
他にも様々な方法で起動させることができますが、最終的にPowerShellが起動し、コマンドを入力できる状況であれば、起動は完了です。またPowerShellをよく使用する場合には、タスクバーやスタートにピン留めしておくと便利です。
PowerShellの基本文法(文字列出力)
プログラミング言語を学習し始めるときと同じように、まずはPowerShellで「Hello world!」を出力させてみましょう。PowerShellでコマンドラインに文字列を出力させるには、「Write-Host」というコマンドレットを使用します。
またPowerShellでは「#」を使用すれば、単一行をコメントアウトさせることが可能です。ここからは具体例を紹介します。
# 「Hello world!」という文字列を出力 Write-Host 'Hello world!'
このように、「Write-Host ' 文字列'」で任意の文字列を出力させることが可能です。複数行をコメントアウトさせたいときは、先頭に 「<#」、コメントの最後に 「#>」を使用します。
また、「Write-Host」というコマンドレットには文字色を変えるオプション「-ForegroundColor」や、背景色を変えるオプション「-BackgroundColor」を使用することが可能です。ここからは具体例を紹介します。
# 文字色を赤で文字列を出力 Write-Host 'Hello world!' -ForegroundColor red
# 文字色を黒、背景色を白で文字列を出力 Write-Host 'Hello world!' -ForegroundColor black -BackgroundColor white
このように、様々なオプションを使用して「Hello world!」という文字列を出力させることができます。他にも様々なオプションがあるため、気になる方はぜひインターネットを使用して記号等の意味を調べてください。
PowerShellの基本文法(変数)
PowerShellでは「$変数名 = 値」という記述方法で、変数を宣言したり、変数に数値を代入したりできます。シェルによってはスペースの有無によりエラーが発生することもありますが、PowerShellではスペースの有無を気にする必要がありません。
そのため必要に応じて、スペースを活用できるのもPowerShellの魅力です。ここからは具体例を紹介します。
# スペースは実行結果に影響しない(どちらも変数「name」に文字列「Tanaka」を代入している) $name = 'Tanaka'
$name='Tanaka'
設定した変数を展開したい場合には、下記のように記述します。実行結果は「Hello Tanaka!」となります。なおこの場合、文字列を囲む記号がシングルクォーテーションだと、変数展開はできないため注意が必要です。
# 変数展開 Write-Host "Hello ${name}!"
PowerShellを学ぶのにおすすめの本
ここでは、PowerShellを勉強するのにおすすめの本を紹介します。PowerShellの学習本は数多くあり、初心者向けの本から応用編の本まで揃っています。これからPowerShellを業務で使いたい人や、PowerShellのスキルをもっと高めたい方は是非参考にしてください。
PowerShell実践ガイドブック クロスプラットフォーム対応の次世代シェルを徹底解説
PowerShellを使ったことがない方でも理解しやすいよう、段階的に説明されています。インストール方法・サンプルコードの動かし方といった基礎から、モジュールを作って公開する方法・業務でPowerShellを活用するための知識といった応用まで学べます。
▪著者:吉崎生
▪ページ数:624ページ
▪出版社:マイナビ出版
▪発売日:2018/05/30
【参考】:PowerShell実践ガイドブック クロスプラットフォーム対応の次世代シェルを徹底解説
コマンドプロンプト、PowerShellそしてWSLまで Windowsコマンド環境のすべて
PowerShellだけでなく、ほかのコマンドについても学びたい方におすすめの本です。本書では、PowerShellのほかにコマンドプロンプト・Windows Subsytem for Linux(通称WSL)について解説されています。
サンプルも豊富に紹介されており、メールを自動送信する・インターネットからファイルをダウンロードするといった実用的なものを学べます。
▪著者:五十嵐貴之
▪ページ数:416ページ
▪出版社:ソシム
▪発売日:2021/04/09
【参考】:コマンドプロンプト、PowerShellそしてWSLまで Windowsコマンド環境のすべて(五十嵐貴之) | 書籍 本 | ソシム
Windows PowerShell実践システム管理ガイド 第3版
Windows環境のシステム管理者向けに書かれた本書は、PowerShellの使い方を基本から実践まで幅広く学べます。豊富な例で解説しているため、初心者の方でもわかりやすいでしょう。第3版ではPowerShell 5.0に対応し、Azure PowerShellについての章が新たに追加されています。
▪著者:横田 秀之、河野 憲義
▪ページ数:404ページ
▪出版社:日経BP
▪発売日:2017/10/23
【参考】:Windows PowerShell実践システム管理ガイド 第3版|日経の本 日経BP
PowerShellを有効活用して業務効率を向上させよう!
これまでに、PowerShellの概要・コマンドプロンプトとの違い・できること・使い方・基本文法・おすすめの書籍について解説しました。
PowerShellとは、Microsoft社が開発したスクリプト言語であり、コマンドラインインタフェース の1つです。PowerShellでできることとして、コマンドレットの使用やMicrosoftサービスの操作などが挙げられます。
PowerShellには統合開発環境があるのも特徴です。使い方は簡単で、アプリを起動するだけで使用できます。PowerShell入門ということで、文字列の出力や変数の定義について紹介しましたが、 PowerShellでできることは他にも様々です。
興味を抱いた方は、業務効率向上のためにも、 ぜひPowerShellを勉強しましょう。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから