PowerShellとは?
PowerShell とは、Microsoft社が開発したスクリプト言語であり、CUI (キャラクターユーザーインターフェイス) の1つです。
CUI(キャラクターユーザーインターフェイス)とは、全てのやり取りを文字で行う方式を指し、プログラムの起動・停止やファイルの位置の変更など、パソコンを動かしているWindows OSへ直接コマンド命令を出すことができます。
また、PowerShell は Windows管理用の CLIツールでもあり、すべての操作をキーボードのみでコンピュータの制御を行えるため、慣れるとマウス操作よりも作業効率が上がります。
CLI(コマンドラインインターフェース)とは、すべての操作をキーボードだけで操作する方法です。
PowerShellのコマンドプロンプトとの違い
PowerShell は、コマンドプロンプトの後継として開発されたため、コマンドプロンプトでできることは、PowerShell でもできます。
また、PowerShell は開発環境がついているなど複雑な処理も作りやすい仕様になっており、コマンドプロンプトの上位互換と考えてもよいでしょう。
詳しくPowerShell でできることを詳しく見ていきましょう。
PowerShellの歴史
MicrosoftがリリースしたOSは、「MS-DOS」から「WindowsOS」に至るまで、常に「COMMAND.COM」や「cmd.exe」などをはじめとするコマンドラインシェルが標準搭載されています。しかし、これらはコマンドライン内の制限もあって、GUIで提供される管理機能の自動化や再利用に適しているとは言えませんでした。そこで、そういったコマンドラインツールの短所を補う形で1998年にスクリプト言語を実装するソフトウェア「Windows Script Host (WSH)」が提供されました。しかしWSHにもシェル統合がされていない点や脆弱性も問題視され始めたこともあって広くは普及はしませんでした。その後の2003年にWindowsや自社製品のシステムを管理・自動化するためのシェル、また、スクリプト言語としてMonadを発表しました。これが後のPowerShellです。
基本的にPowerShellは、Windows特化のツールですが、2018年にはオープンソースの「PowerShell Core」がリリースされ、こちらはWindows以外に「LinuxOS」や「macOS」でも利用できるクロスプラットフォーム対応しています。PowerShellの派生のような位置づけでコマンドレットが調整されています。
PowerShellのメリット
メリット①:インストールする必要がない
PowerShell はWindows Server 2008 / Windows 7から標準機能として搭載されたので、それ以降の新しいOSの PC であれば最初からインストールされているので、ソフトをインストールする必要がありません。
さらに、どの端末でも同じ動きをするため、一度作ったスクリプトツールを他のコンピュータで再利用することができます。
メリット②:読み書きしやすい「コマンドレット」
PowerShell では、システムに従来の「コマンド」をわかりやすくした「コマンドレット」を利用できます。
コマンドレットは「動詞-名詞」という英語の意味に従った規則で作られており、直感的にコマンドの内容を把握しやすいです。
コマンドレットの動作が英単語の意味から簡単に推測できるため書きやすく、読みやすいというのが最大のメリットです。
また、「Get-Command」と入力すると、利用可能なコマンドレット一覧を取得できるため時間的コストも抑えられます。
そして、コマンドレットにはオプション (パラメータ) が用意されていてコマンドレットの動作を詳しく指定することができます。
メリット③:複数の命令を組み合わせて高度な処理ができる
コマンドプロンプトでは不可能だった複数の命令を組み合わせる機能 (パイプライン) が備わっていて、より高度で細かく動作を制御できます。
パイプラインにより、先行コマンド結果を次のコマンドに受け渡すことが可能です。PowerShell ではパイプラインを縦棒「|」で表します。
例えば「Get-ChildItem」と「Out-File」というコマンドレットを組み合わせると取得したファイル一覧情報の中から特定のテキストファイルを出力させることができます。
これは一例で、ほかにも指定のファイルを移し替えたり、Excel や Word を一元的に管理できるなど工夫次第では PC上で行うほぼすべての操作を実行できます。
メリット④:統合開発環境「PowerShell ISE」が用意されている
複雑な処理でも作りやすいよう、統合開発環境「Windows PowerShell ISE」も Windows OS に標準インストールされています。
「Windows PowerShell ISE」には記述のテストやデバッグ、専用コードエディタなど、さまざまな開発環境が統合されており、PowerShell用スクリプトの効率的な開発が可能です。手間を掛けずに PowerShell の学習・開発に取り組みやすい点もメリットの一つです。
また、コマンドプロンプトはコードを書いてEnterキーを押すと実行してしまうのに対し、PowerShell は「デバッグ」して処理途中で止めながらスクリプトを作ることが可能です。
メリット⑤:Microsoftのサービスを操作できる
PowerShell を使用して「Microsoft 365」や「Microsoft Exchange」などの Microsoft社が提供しているクラウドサービスを操作することが可能で、メールボックスからユーザデータを取得したり、ユーザをグループ化したりすることができます。
また、フィルター処理をして自動化を行うことも可能です。さらに企業で一元管理している多数のアカウント設定を一括変更できるため、業務で使用することも十分に可能です。
このように PowerShell を使用すれば、運用コストの削減や業務効率の向上が期待できます。
PowerShellの活用例
活用例①:Windows OSの構築・設定
PowerShell は Microsoft社が開発した言語ということもあり、特に Windows OS の構築、設定に有効です。Windows OS でユーザーが行う操作は、ほぼ PowerShell によりスクリプト化が可能です。
OS の設定、構築は作業量が多いため、PowerShell でスクリプトを作成しておけば、多くの作業を簡易的に自動化できます。
活用例②:ファイル操作
ファイルの検索や配置変更、回収、フォルダ作成といった操作も PowerShell では自動化することがきます。
活用例③:Active Directoryの管理
Active Directory の運用管理では、用途はさらに広がります。
Active DirectoryとはWindows Serverに標準搭載されているシステム管理者が組織のリソースを管理するのに有用なサービスを指します。
ユーザやグループポリシーの管理は、AD管理者の定常的な保全業務の一つですが PowerShell を使用すればそういった業務の定型部分を簡単な操作でスクリプト化し運用できます。
活用例④:リモートでのサーバ管理
管理対象のサーバにわざわざスクリプトを配置せずとも任意のPCから PowerShell で対象サーバにリモート接続することでスクリプの実行が可能です。システムの設定変更や情報収集に有用な手段の一つとなります。
PowerShellでコマンドレット実行する
PowerShellを起動する
まずはPowerShellを起動します。
起動手順
- Windowsボタンをクリックする
- 検索窓にPowerShellと入力する
- 表示された「Windows PowerShell」を右クリックして「管理者として実行する」を選択する
簡単なコマンドレットを実行する
「A.txt」というテキストファイルをコピーし「B.txt」という名前で作成します。次の2つのコマンドレットを使って実行します。
Get-ChildItem | フォルダ・ファイルの一覧表示 |
Copy-Item | ファイルのコピー |
実行手順
- 「Get-ChildItem」を実行し、カレントディレクトリに「A.txt」があるか確認する
- 「Copy-Item」を実行し、ファイルをコピーする
- 「Get-ChildItem」を実行してファイルが作成できたか確認する
このように、コマンドレットを使うことで簡単にファイルを操作できます。PowerShellには500種類以上のコマンドレットがあります。直感的に覚えやすいですし、覚えることでPC操作がしやすくなるのでPowerShellを使っていろいろ試してみるのも良いですね。
最後に
今回は PowerShell (パワーシェル) で何ができるか、そのメリット、活用例を紹介してきました。
コマンドプロンプトからさらに発展した PowerShell を活用することで反復作業などの業務を自動化させることができます。
近年、RPA (ロボティック・プロセス・オートメーション) といった業務の自動化ツールも注目されてきていますが、PowerShell でも RPA のような自動化を自身で構築することができます。
Windows OS であれば PowerShell を使用できますし、コマンドレットによりプログラミング初心者でも直感的に操作しやすいので興味が湧いた場合は一度試してみてはいかがでしょうか?