Amazonセール開催中! こちらをクリックして詳細をチェック :-)

【文鳥でもわかる】PowerShellのはじめ方

PowerShellって実はあつかいやすいんです。
一度、イメージを掴んでしまえば様々な用途で使うことができちゃいます。

PowerShellを使うにあたっての予備知識とイラストや動画を交えた実行方法を
まとめてご紹介します。

 

この記事はこんな方にオススメ!

  • PowerShellについて簡単に知りたい方
  • PowerShellを使ってみたい方
  • 文字だけでなく動画(GIFアニメーション)による解説も見たい方
目次

使用前の予備知識

PowerShellとは

2022年9月現在、メインストリーム中のWindows OS(Windows 10/Windows 11など)では
標準でインストールされている無料のツールです。
また、Windows以外にもMac OSやLinuxでもインストール可能な「PowerShell Core」も
無料で配布されています。

開発のしやすい事やお金がかからない事、導入のしやすい事などのメリットから
多くの企業で利用されているツールとなります。

PowerShell(パワーシェル)は、マイクロソフトが開発した拡張可能な
コマンドラインインターフェイス (CLI) シェルおよびスクリプト言語である。
オブジェクト指向に基づいて設計されており、
.NET Framework (Windows PowerShell 5系以前)
あるいは.NET Core (PowerShell Core 6系以降) を基盤としている。

引用元:Wikipedia

補足:GUIとCLIについて

GUIとCLI、2つの用語はともにコンピューターを扱う際の使用方式の事を指しています。
まずは身近なWindows OSでも使用されているGUIから説明します。

GUI(グラフィカルユーザーインターフェイス)とは
GUIのイラスト
GUIのイラスト

GUIとはウィンドウやアイコン、ボタンなど多種多様なパーツで構成された画面を
マウスやキーボードなどで視覚的に操作できる方式となります。

CLI(コマンドラインインターフェイス)とは
CLIのイラスト
CLIのイラスト

CLIは文字列だけで構成された画面を
キーボードによるコマンド実行のみで操作する方式となります。
(ドラマや映画でハッカーがキーボードだけでカタカタやっているイメージのヤツです。)

また、CLIと同じ意味としてCUI(キャラクターユーザーインターフェイス)という
用語もあります。
CLIやCUIの使用例としてはPowerShellのコマンド操作やUNIX OS系統の
ターミナル操作などがあります。

補足:スクリプト言語

PowerShellのWikipediaで記載されているスクリプト言語とは簡易的な
プログラミング言語の事を指しています。
ただ、厳密にプログラミング言語とスクリプト言語の区別はないので
環境により呼び方も変わります。
(例:PythonのことをA社の仕事現場ではスクリプト言語と呼ぶ。
   B社ではプログラミング言語と呼ぶ。)

スクリプト言語(スクリプトげんご、英語: scripting language)とは、
アプリケーションソフトウェアを作成するための簡易的なプログラミング言語の一種を指す

スクリプト(英語で「台本・脚本」の意味)とは、その簡易的な言語記述方法を
指してそう呼ばれるようになった。

上記の意味より、さらに転じて、比較的単純なプログラムを記述するための、
簡易的なプログラミング言語全般をいう。
変数に型をつけないなど、動的型付け言語をスクリプト言語と呼ぶ定義もある。
ただし、厳密な定義ないし区別は存在しない

引用元:Wikipedia

以前の主流はコマンドプロンプト・WSH

WindowsにPowerShellが登場するまではCLIはコマンドプロンプト
(コマンドラインシェル)やWSH(VBScript/JScript)が使用されていました。

Windowsの最新OSであるWindows 11でも過去のレガシー(コマンドプロンプトやWSH)を
使用できますが、多機能である事やプログラムが制御しやすい事など多くのメリットから
現在の主流はPowerShellとなっています。

akiGAMEBOY

過去のレガシーではクセが強くプログラムを作成する際
実際に動かさないと、どのような動きになるか分からない
場面が多くありました。

私も実際にPowerShellを使ってみたところ、だいぶ
扱いやすい印象です。

また .NET Framework(ドットネットフレームワーク)の
ライブラリも使用できるので多くの情報を流用できます。

しらたま

簡単に扱えるようになって色々できるようになったっピね。

いい感じっピ👍

実行方法

PowerShellの実行方法は大きくわけて2種類あります。
それぞれの代表的な実行方法を動画(GIFアニメーション)と合わせて紹介します。

PowerShellはさまざまな事が実現可能となり自由度の高いツールです。
その為、企業によってPowerShellが使用禁止となっている場合があります。
会社の環境でPowerShellを使用される場合はご注意ください。
ご自身の会社が禁止となっているかご不明な場合は上司や情報システム部など
管理者に会社のポリシーを確認した上でお試しください。

検証環境

今回の検証パソコンの環境は下記のとおりです。

BuildVersion10.0.19041.1682
PSVersion5.1.19041.1682
$PSVersionTableで確認

手動でのコマンド実行方法

PowerShell 手動での実行イメージ
手動での実行イメージ
STEP
PowerShellウィンドウの起動

スタートメニューから「Windows PowerShell -> Windows PowerShell」を選択
*Windows PowerShell (x86)でもOK

PowerShellの起動
PowerShellウィンドウの起動
STEP
コマンドの実行

文字列を表示させるコマンド「Write-Host」を実行

Write-Host "Hello World" -ForegroundColor Red
PowerShell Write-Hostコマンドを実行
PowerShell Write-Hostコマンドを実行

補足:Write-Hostコマンドの簡易説明

Write-Host [画面に表示する文字列を指定] -ForegroundColor [文字の色を指定]
Write-Host [画面に表示する文字列を指定]

Write-Hostコマンドは画面に文字を表示させるコマンド。
[画面に表示する文字列を指定]の文字列が画面に表示される。

-ForegroundColor [文字の色を指定]

任意のオプション。文字色を変更できる。
今回、指定したRedの他にも様々な色を指定することができる。

※上記以外にも様々なオプションがあるが割愛

Write-Host (Microsoft.PowerShell.Utility) – PowerShell | Microsoft Learn

プログラムでの実行方法

PowerShell プログラムでの実行イメージ
プログラムでの実行イメージ
STEP
スタートメニューから開発ツールを起動

スタートメニューから「Windows PowerShell -> Windows PowerShell ISE」を選択
*Windows PowerShell ISE (x86) でもOK

PowerShell ISEの起動
PowerShell ISEの起動
STEP
開発ツールでプログラムを作成

文字列を表示させるコマンドを記述し任意の場所にPS1ファイルを保存

Write-Host "質問者:信号機の色を三つ答えてください。"
Write-Host "回答者:左側は青色です。" -ForegroundColor Blue
Write-Host "回答者:真ん中は黄色です。" -ForegroundColor Yellow
Write-Host "回答者:右側は赤色です。" -ForegroundColor Red
Write-Host "質問者:正解!"

*1行目~5行目:Write-Hostコマンドにより画面に指定の文字列を表示。

ISEでPS1ファイルを作成
ISEでPS1ファイルを作成
STEP
バッチファイルの作成

スタートメニューから「Windows アクセサリ -> メモ帳」を開きコマンドを記述
上記で保存したPS1ファイルと同じ場所に拡張子「.bat」として保存

powershell -NoProfile -ExecutionPolicy Unrestricted -file .\Shingo_QA.ps1
PAUSE

*1行目:powershellコマンドはPS1ファイルを実行。実行後、PS1ファイル内のコマンドが実行される。
*2行目:通常、バッチファイルを実行するとコマンド結果のウィンドウが自動的に閉じてしまう為
    PAUSEコマンドによりコマンド結果のウィンドウが勝手に閉じないように設定。

バッチファイルの作成
バッチファイルの作成
STEP
バッチファイルを実行

バッチファイルをダブルクリックし実行

バッチファイルの実行
バッチファイルの実行

補足:powershellコマンドの簡易説明

PowerShellのプログラムでは実行ポリシーという設定があります。
セキュリティの観点から既定の設定値(Restricted)ではPS1ファイル単体では
実行できないように設定されています。

今回、紹介したバッチファイル経由でPS1ファイルを実行する事で
一時的にPowerShellの実行ポリシーを変更して実行する事が可能です。

powershell -NoProfile -ExecutionPolicy [実行ポリシーを指定] -file [実行するPS1ファイルを指定]
powershellコマンド

バッチから(コマンドラインシェル/コマンドプロンプト)PowerShellを呼び出すためのコマンド。

コマンド保管場所C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
powershellコマンドの保存場所
-NoProfile

任意のオプション。
指定することでPowerShell起動時にプロファイル(環境情報)を読み込まない。細かい説明は割愛。

-ExecutionPolicy [実行ポリシーを指定]

今回は実行ポリシー「Unrestricted」を指定。

実行ポリシー名内容
Restricted構成ファイルの読み込みやスクリプトの実行しない。既定値は “Restricted” 。
AllSignedすべてのスクリプトと構成ファイルが信頼された発行元によって
署名されていることを要求あり。
RemoteSignedインターネットからダウンロードされたすべてのスクリプトと構成ファイルが
信頼された発行元によって署名されていることを要求あり。
Unrestrictedすべての構成ファイルを読み込みとすべてのスクリプトを実行。
インターネットからダウンロードされた署名なしのスクリプトを実行する場合
スクリプトを実行する前に確認あり。
Bypassブロックなし、警告もメッセージもなし。
Undefined現在のスコープから割り当てられている実行ポリシーを削除。
実行ポリシーの種類
-file [実行するPS1ファイルを指定]

今回は作成したPS1ファイル、「Shingo_QA.ps1」を指定

※上記以外にも様々なオプションがあるが割愛
公式サイト:powershellコマンドについて

about PowerShell exe – PowerShell | Microsoft Learn

公式サイト:実行ポリシーについて

実行ポリシーについて – PowerShell | Microsoft Learn

他の実行方法も簡単に紹介

恒久的に実行ポリシーを変更し実行する方法

下記のコマンドでPowerShellの実行ポリシーの設定を変更する事が可能。
ただし、セキュリティの観点から恒久的に実行ポリシーを変更する事は
おすすめしません。

Set-ExecutionPolicy [変更する実行ポリシーを指定]

実行ポリシー変更後、PS1ファイルを右クリックして「PowerShellで実行」で
プログラムが実行可能。

一つのバッチファイルだけで完結するやり方

こんな方法も見つかりました。
一つのバッチファイルだけでPowerShellのプログラムが実行できる方法です。

やり方はバッチファイルの1行目に下記のコマンドを記述し2行目以降は
PowerShellで実行したい内容を記述するだけです。
この方法で作成したバッチファイルをダブルクリックで実行すると
2行目以降のコマンドが実行されるというスゴ技です❗❗

@powershell -NoProfile -ExecutionPolicy [実行ポリシーを指定] "$s=[scriptblock]::create((gc \"%~f0\"|?{$_.readcount -gt 1})-join\"`n\");&$s "%~dp0 %*&goto:eof
2行目以降はPowerShellで実行したいコマンドを記述する。

参考情報:PowerShellをダブルクリックで実行させる

PowerShellをダブルクリックで実行させる – 一人情シス入門 (hitoriit.blog)

その他の参考記事

参考情報:CLIからの実行方法

PowerShell スクリプトを実行する | Delft スタック (delftstack.com)

参考情報:GUIやCLIについて

Azure PowerShellとは?Azure CLIとの違いと用途、自動化についても解説 | クラウド導入・システム運用ならアールワークスへ (rworks.jp)

参考情報:実行ポリシーの変更方法/ショートカットからの実行方法

[PowerShell]スクリプトを実行すると「このシステムではスクリプトの実行が無効になっているため、ファイル *スクリプトファイル名* を読み込むことができません。」エラーが発生する (curict.com)

参考情報:実行ポリシーの種類について

PowerShellのExecutionPolicyのスコープとかについて詳しく – Qiita

参考情報:powershellコマンドの「-NoProfile」について

PowerShell プロファイルを利用しろ!#2 – 業務改善!Windows PowerShell入門 (hatenablog.com)

まとめ

  • PowerShellはCLIのツール
     
  • PowerShellには手動でコマンド実行できる「PowerShellウィンドウ」がある
     
  • バッチファイルからPS1ファイルを起動する事で半自動でPowerShellのコマンドが実行可能
akiGAMEBOY

以上がPowerShellの実行方法をテーマにした記事です。

イメージはつかめたでしょうか。
PowerShellはWindows無料で利用できるツールなので
頭で考えるより実際、触ってみた方が覚えやすいと思います。

しらたま

PowerShell、いろんな場面で導入できそうだっピ。

akiGAMEBOY

今後は、より実践的なプログラムを紹介したいと思います。
お楽しみに。

それでは、また次回お会いしましょう。さようならー🖐

しらたま

バイバイっピー✨

この記事をシェア

コメント

コメントする

コメントは日本語で入力してください。(スパム対策)

CAPTCHA

目次