PowerShell

powershell
この記事はPowerShellについて解説した記事です。会話形式のやさしい文章で「PowerShell」の用語のイメージを紹介した後に、採用に役立つPowerShellの知識を解説しています。

1分で分かる!PowerShellとは?

うーん。これ本当に面倒くさいなぁ。なんでこんな面倒くさいことを毎週しなきゃいけないのかなぁ…。あぁ!!そんなこと言ってる間に作業をミスってしまった…!!また最初からやらないと…

ことりん君、こんにちは!

あぁ困ったところにジャバ―ド先生!!もうボク、イライラしちゃってダメだ!!助けて!!

何やら苦戦しているようだね??一体何をやっているのかな?

いや、ボクの会社、毎週やらないといけない仕事があるんだよ。

どういう仕事?

このフォルダにあるファイルから直近の1週間分を取得して、こっちのフォルダにコピーして、zipファイルにして、メールで幾つかの宛先に送信するって感じなんだ。

なるほど。こんな作業が他にもたくさんあるのかな?

そうだね。ボクがやっているのはあと2つくらいだけど、社内では色々と手作業でやらないといけない業務も、まだたくさんあるかなぁ…。

システム化の話はでていないのかな?

いや、そういう話もあったんだけどね。開発している会社に見積もりをお願いしたらしいんだけど、思ったよりも高額で費用対効果が得られないという結論になったみたいでさ…。

だから今でも手作業でやっているという訳だね。たしかに開発となるとそれなりの額になっちゃうからね。それならPowerShell(パワーシェル)で対応したらどうだろう?

ぱわーしぇる??

そう!PowerShellを使えば、ことりん君の悩みを解決できると思うんだ!

PowerShellってどういうものなの??

PowerShellというのは、PC上で作業する必要がある様々なタスクを自動的に実行するためのツールだよ。PowerShellを使えば、ことりん君が毎週苦しんでいる作業もダブルクリック1回で完了できるはずだよ。

えぇ!そんなものがあるの!?もう少し詳しく教えて!

PowerShellっていうのはMicrosoft社が開発したんだ。元々はWindows上で動かすためのものだったんだけど、現在ではクロスプラットフォームといってLinuxやmacOSといった複数のOS上で実行できるように進化しているんだよ。

Microsoftがつくったけど、OSを選ばずに実行できるってことだね。具体的にはどんなことができるの??

基本的にはWindows上でできることは何でもできると思っておいていいよ。一例をあげるとこんな感じだね。

オブジェクト変換(オブジェクトをCSVやJSONなどに変換)
アイテム操作(アイテムの作成・コピー・移動・削除・リネームなど)
日付時刻関連(日付時刻を取得・設定する)
サービス関連の操作(取得・開始・停止・再起動など)
コンピュータの操作(再起動・シャットダウン・Ping送信など)

すごい!!できることがたくさんあるね!!それぞれを組み合わせて使えば本当にいろいろなことが実現できそうだ!

そういうこと!それに、さっき紹介したのはPowerShellでできることの、ごく一部だからね!

ちょっとPowerShellを勉強してみる!そうするとボクが毎週やっている不毛な作業ともバイバイできそうだ!

そうだね!ことりん君が困っている作業だけではなく、色々な作業を自動化できるかもしれないよ!がんばってみて!

PowerShellとは?採用に役立つPowerShellの基礎知識

PowerShellとは、Microsoft社が開発したCLI(コマンドラインインターフェース)です。CLIとは、一般的なシステムのようなグラフィカルな画面は持っておらず、いわゆる「黒い画面」にキーボードで必要な文字を入力した上で実行するようなものを指します。当初PowerShellはWindows上でのみ実行できるものでした。ただ、2016年にMicrosoft社がPowerShellをオープンソース化したことを皮切りに、2018年にLinuxやmacOSにも対応したバージョンをリリースしました。

なお、厳密にいうとPowerShellには「Windows PowerShell」と「PowerShell Core」という2種類のものがあります。前者はOSであるWindowsに内包されているものであり、後者はクロスプラットフォーム対応したオープンソースソフトウェアとなっています。

PowerShellを使うエンジニア

PowerShellは開発における様々な工程で使います。もっともよく利用するのはインフラ関連を担当するエンジニアや社内のITリソースの管理者などです。インフラ(サーバー)エンジニアは、Windowsの設定や構築の作業を自動化 するために、PowerShellを使用します。また、社内SE(情報システム)やサーバーサイド(バックエンド)エンジニアなどは、一定期間で定型の処理をするためにPowerShellを用いることがあります。

PowerShellを使うエンジニアの特徴と在籍業界

前述したとおり、PowerShellは様々な用途で使用します。そのため在籍業界についても特に偏りはありません。どちらかというときちんとしたアプリケーションとして使用するよりは、定型の作業を自動化するために、あるいは省力化するためにPowerShellを用いることが多いです。

採用する時に知っておくとよいこと

PowerShellにはたくさんのコマンドが用意されています。しかし、それらをすべて暗記しているエンジニアはいません。そのため、PowerShellについてのスキルを問う時には、コマンドの知識量と直接的な関係がないことは理解しておきましょう。大事なのは必要な時に、必要なコマンドを調べることができるかどうかです。そして、それにはPowerShell のヘルプ システムに対する理解を深めておく必要があります。

※ このあたりの内容はMicrosoftの公式サイトでも触れられていますのでご一読ください。

求人のポイント

求人を作成する時は、下記の内容を求人に入れるとよいです。

1システム(サービス)の詳細
※特にそのシステム(サービス)をなぜ作っているのかを熱量をもって記載する。
2開発環境
3現在のエンジニア組織の体制
4現行システムの課題と募集の背景
5求められる業務と期待値
6エンジニアとしてのスキルアップ支援制度の有無と詳細
7エンジニアチーム内での相互成長のための仕組み(勉強会やLT会など)の有無と詳細
8選考フロー
9待遇
10キャリアパス

Powershellの豆知識

PowerShellとコマンドプロンプトの違い

Windowsの黒い画面といえば、コマンドプロンプトが有名です。今回のテーマであるPowerShellも似たような画面を有しています。ファイルやフォルダの操作などができるという共通項もありますが、PowerShellで出来ることのほうが多く、機能的にも優れています。今後はコマンドプロンプトはPowerShellに統合される可能性が高いと見られているため、特別な理由がない限りはPowerShellを利用したほうが良いでしょう。

関連記事

  1. Graphql

  2. ロードバランサ

  3. Red Hat

  4. Arduino

  5. PostgreSQL

  6. Microsoft 365