Windows PowerShell
読み方:ウィンドウズパワーシェル
Weblio辞書より引用
別名:PowerShell
Windows PowerShellとは、Microsoftが開発したオブジェクト指向のスクリプト言語の名称である。開発コード名は「Monado」(モナド)だった。
Windows PowerShellは、.NET Frameworkの技術をベースとするスクリプト環境であり、従来のWindowsにおけるスクリプト環境であったcmd.exeやWSH(Windows Scripting Host)に比べてもはるかに柔軟で幅広い機能が利用可能となっている。
Windows PowerShellに組み込まれているコマンドは、コマンドレット(Cmdlet)と呼ばれる。コマンドレットの多くは「動詞-目的語」という方式で命名されており、それぞれのコマンドレットがどのようなオブジェクトを呼び出すのか容易に把握できる。
また、Windows PowerShellはUNIXで扱われるコマンドとの共通化などにも配慮されている他、エイリアス(別名)によって同じを複数の名前で指定できるようになっている。
Windows PowerShellは、2006年に正式に公開された。Windows XP以降のWindows系OSに対応しており、Windows Server 2008には標準で搭載されている。Windows PowerShellが使用されているアプリケーションとしてはExchange Server 2007などを挙げることができる。
はじめに
ここ数年、インフラ(Windows系)の仕事に従事していますと、Windows PowerShellというワードをよく耳にしました。実際に使ってみますとかなり便利です。
今回は、Windows PowerShellを使うための準備として、実行ポリシーの変更についてをまとめていきたいと思います。
便利なWindows PowerShell
Windows PowerShellが登場するまで、Windowsに対し簡易的に命令を行う場合、Windows コマンドを使用していました。
Windows コマンドを使用しているとなにかと不便に感じることが多かったと思います。例えば、うるう年を含む日付を計算する処理などがあげられると思います。
Windows PowerShellではあらかじめ関数が用意されていますので、ユーザーはうるう年などを意識することなく日付を計算することができます。
以下は、Windows PowerShellでの翌日取得処理です。
(Get-Date).AddDays(1)
例に挙げましたように、Windows Powershellは、Windows コマンドに比べて非常に便利になっています。
コマンド【command】
Weblio辞書より引用
命令。指令。コンピューターで、処理装置に指示する特定の文字列。
キーボード入力を主とするCUIのオペレーティングシステムやアプリケーションソフトなどにおいて使われる命令語を指す。
アーキテクチャ
Windows PowerShellには「32ビット版」と「64ビット版」があります。
以下に、Windows PowerShellの種類をまとめています。
名前 | 説明 |
---|---|
Windows PowerShell | 64ビット版のWindows PowerShell |
Windows PowerShell (x86) | 32ビット版のWindows PowerShell |
Windows PowerShell ISE | 64ビット版のWindows PowerShell 統合スクリプティング環境 |
Windows PowerShell ISE (x86) | 32ビット版のWindows PowerShell 統合スクリプティング環境 |
ISE(アイス)は、Integrated Scripting Environmentの略です。Windows PowerShellの統合スクリプティング環境、開発ツールです。ISE上で実行させることで、PowerShellのデバッグが可能です。
基本的には、32ビットのアプリケーションからは、32ビット版のWindows PowerShellが呼び出され、64ビットのアプリケーションからは、64ビット版のWindows PowerShellが呼び出されます。
32ビットのアプリケーションから、64ビット版のWindows PowerShellを呼び出すことも可能です。
32ビット版のWindows PowerShellは「SysWOW64」の中に配置されています。また、64ビット版のWindows PowerShellは「System32」に中に配置されています。
OSのエディションとバージョン
今回は以下のOSエディションとバージョンをターゲットとし、PowerShellを実行いたします。
PowerShellの実行ポリシー変更
Windows 10 HomeにてPowerShell(拡張子=「.ps1」)を実行するには、PowerShell実行ポリシーを変更する必要があります。
PowerShell実行ポリシーの変更につきましては、Microsoftのサイト「第 1 章 – PowerShell の概要」で説明されています。
Windowsのメニューから [Windows Powershell] → [Windows Powershell] を選びます。その際、ポップアップメニューから [管理者として実行する] をクリックします。
Windows PowerShellが表示されます。
以下のコマンドレットを入力し、[Enter] キーを押します。
Get-ExecutionPolicy
デフォルトのPowerShell実行ポリシーは [Restricted] です。
PowerShell実行ポリシーを変更するため、以下のコマンドレットを入力し、[Enter] キーを押します。また、変更確認メッセージが表示されますので [Y] を入力し、[Enter] キーを押します。
Set-ExecutionPolicy RemoteSigned
PowerShell実行ポリシーの変更を確認するため、以下のコマンドレットを入力し、[Enter] キーを押します。
Get-ExecutionPolicy
PowerShell実行ポリシーが [RemoteSigned] に変更されています。
ISEから実行
PowerShellの実行ポリシーが変更されましたので、ISEから簡単なPowerShellスクリプトを実行してみます。
Windowsのメニューから [Windows Powershell] → [Windows Powershell ISE] をクリックします。下図では [管理者として実行する] をクリックしていますが、管理者として実行していなくてもPowerShellスクリプトを実行することは可能です。
[Hello-Powershell.ps1] を開き実行ボタン(緑色の右三角ボタンです)をクリックします。[Hello Powershell] が表示されました。PowerShellの実行ポリシーが [RemoteSigned] に変更されていますので、スクリプトが正常に実行されます。
PowerShellの実行ポリシーを変更せず [Restricted] のままスクリプトを実行した場合、実行時エラーとなります。
まとめ
ISEからPowerShellスクリプトを実行する場合は、実行ポリシーを変更してください。また、PowerShellスクリプトが実行できない場合は、実行ポリシーを確認してみましょう。しないと実行時エラーとなります。必ず、実行ポリシーを変更しましょう。
なお、PowerShellの実行ポリシーの種類に関してましては、Microsoftのサイト「実行ポリシーについて」を確認してください。
最後までお読みいただきありがとうございます。
では。