この記事は入門コンテンツの本編ではありませんので、お急ぎの方は本編Part.1にお進みください!
PowerShell入門記事を書くにあたって、IT業界で働くチャシャ男が感じることや思いを少しお話します。
もくじ
「Windows を使う」という選択が意味すること。
IT 業界(とくにインフラ業界)にいるとWindowsの事を好きになれない人に会うことがあります。Mac派だったり Linux派だったり、一種の宗教戦争のようにOSの派閥が分かれてることが多いです。
Mac派やLinux派の中でWindowsを毛嫌いする方が、
- Windowsは中身がわからなくて使いづらい。
- WindowsはUIがイケてない。
と批判するのをよく聞きます。確かにそういう面もあります。
確かにLinux系はOSS(オープンソース)でソースコードが公開されているため、自由度が高くサーバの構築などにおいて自由に設定変更がでます。
自由度が高いので、よりスキルが必要ですが…
また、MacはUIや操作性・色彩再現に優れており、クリエイティブな現場で好まれる傾向にあります。Windowsに比べてヌルヌル動くのは使っていて気持ちがいいです。
「じゃあ、Windowsは何が良いの?」となりますが、シェア率が高いことが挙げられます。
シェア率が高いと何が良いのかというと、
- 世のアプリケーションはWindows環境を想定していることが多い
- 多くの職場で使われている(支給される)
- 用途に合わせて様々なメーカーから選べる
- 周辺機器の対応製品が多い(Windows用のドライバーだけだったり)
などがあります。
その他にも、Windowsと言えばExcel・Word・PowerPointなどのOffice製品とセットで使われ、取引先のやり取りでExcelファイルが飛び交うことはよくあります。あなたの職場でもそうではないでしょうか。
一般的な企業に就職しデスクワークを想定するのであれば、やはり「Windowsを使う」という選択からは逃れられない事実であるとチェシャ男は考えます。
世の中には神Excelがいっぱいですからね
ここ最近、macOS(OS X)のシェアを追い抜いている「ChromeOS」というものがあります。(上の表だとUnknown?)
ChromeOSはウェブブラウザのChromeをベースのUIとして、Webアプリケーションの動作サポートするOSです。
低コストのノートPCでも動作することから安価に導入できるChromeOSは、コロナ禍のリモート授業に対応するため教育機関での導入が進みシェアが一気に伸びたと考えられるそうです。
PowerShellを推す理由
シェア率が高くあなたも使っているであろうWindowsですが、インストールしただけでできることは少なく、OS単体で使うことはないでしょう。
実際に利用する場合は、Office製品や職場で使う業務ソフト、ネットに転がっているフリーソフトなど様々なソフトウェアをインストール&セットアップして使うはずです。Windows Serverであれば必要に応じて機能を追加し環境を構築します。
ここで登場するのがPowerShellです。
Point.1 決まった作業を自動化したいな…
ルーチンワークとなっている固定の作業が手放しでできれば、「他のことできるのに」とか「もっと早く帰れるのに」と思うことが出てくるはず。
PowerShellでスクリプトを組むことで、Excelでのレポートを作成したり、外部システムの情報を取得して出力したり、データをバックアップしたりと多くのことを自動化することができます。さらに、タスクスケジューラで起動させるようにすれば実行すらも自動化できるので、決まった時間に勝手に出来上がってるなんてことも実現できます。
Windowsで自動化といわれるとbatファイルやExcelマクロを思いつくかもしれませんが、PowerShellの方が圧倒的に機能が多く使いこなせれば夢は無限大です。
Point.2 そのフリーソフトって必要?
Windowsをセットアップする際に脳死でネットから拾ってくるフリーソフトをインストールする人もいます。その中には「それ、PowerShellでできるじゃん」というようなものもあります。
PowerShellはWindowsの標準機能でOSインストール直後から使用できるため、PowerShellで代替することで、余計なセットアップの手間が省けますし、他のWindowsのPCで同じ処理を再現することができます。
あれこれソフトをインストールすると、環境変数やシステム領域に色々設定されて環境が汚れたり容量を圧迫したりします。またソフトによっては怪しいものあるため、PowerShellを活用することでPCをクリーンな状態に保つことができます。
未承認ソフトが使用不可な現場もあるので標準機能はありがたい!
Point.3 GUIでポチポチやるの面倒くさい
インフラSEという観点から見てみると、
- 社員に配る大量のPCを1台1台手作業でセットアップする
- 同じようなサーバを複数台構築する
- 日中はできないので夜間にメンテナンスする
などの作業に課題を感じることがあります。こんなもの全部手作業でやってたらコストが膨らむ一方ですからね。
PoweShellが使いこなせれば、PCのセットアップ手順をPowerShellスクリプトに落とし込むことでまとめて設定できますし、PowerShellDSCを使えばサーバの構成管理ができますし、メンテナンスを自動化することができます。
このようにWindowsを使うことを余儀なくされた環境下において、PoweShellを使いこなせるようになることで効率化などの恩恵がたくさんあることがわかります。
PowerShellはWindowsに限らない
PowerShellは登場から年々進化を遂げ、ついにはオープンソース化(OSS化)を果たしました。
本記事執筆時点のPowerShell 7では、
- Windows 8.1、10
- Windows Server 2012、2012 R2、2016、2019
- macOS 10.13 以降
- Red Hat Enterprise Linux (RHEL)/CentOS 7
- Fedora 30 以降
- Debian 9
- Ubuntu LTS 16.04 以降
- Alpine Linux 3.8 以降
といったOSがサポートされています。
つまり、PoweShellを習得することで『これらのOSが操作できるようになる』ということであり、PoweShellで動くツールを作れば『これらのOSで使いまわす』ことができるということです。
CUI(キャラクターユーザーインターフェース)と呼ばれるマウスを使わない操作になれる必要はありますが、今のうちにマスターすれば見返りはかなり大きなものとなること間違いなしといえるでしょう。
ここまで読んでくださったあなたであれば、PoweShellの偉大さがわかったはずです!
さっそくPoweShellに入門しよう!!
初めまして。PowerShell初心者です。
PowerShellは性能が高いがゆえにウィルス攻撃などの悪用に使われることも多く、セブンイレブンのnanacoカードが詐欺に使われすぎて販売を停止させたように、そのうちMS社のサービス(サポート?)も停止するかもしれないという噂を聞きまして、使う勇気がなくなりつつあります…。
PowerShell自体は便利な機能で使いこなしたいと思うのですが、本当に停止されたら習得した意味がなくなってしまいそうで怖いです…。
実際に使っていらっしゃるチェシャ男さんの意見を伺いたく存じます。
なんとも抽象的な問い合わせで申し訳ないです…。
おいはぶさん
コメントありがとうございます。気づくのが遅れてしまい申し訳ありません。
確かにPowerShellでは出来ることが格段に多くなり、悪意のある人がスクリプトを作成すると、大抵の操作ができてしまいます。
ウィルスに使用されるケースもあるため、ベタな対処ではありますが怪しいファイルを実行しないことや、ExecutionPolicyを適切に設定し運用することが必要になります(‘Д’)
PowerShellもOSS化しWindows外のOSでも実行できるCore版も出ていますし、新しいターミナルアプリ「Windows Terminal」も発表されており、まだしばらくはPowerShell使えると思っています(未だにバッチファイル使われていますしね!)
「MS社のサービス(サポート)が停止するかも」というのは、ちょっと聞いたことがなかったのですがどちらで仕入れられましたか??(+_+)
初めまして。pewerShellに詰まってしまい…ググっていたらこちらにたどり着きました。本当に初歩の初歩で質問するのも恥ずかしいのですが、pewershellに書き込んでしまった以前のコマンドを表示させるにはどうすればよいのでしょうか?書き込んでしまったものをオールクリアにしてもう一度初めからやり直したいのです。…まったくよくわからないまま触ったばかりに(困)
pewershellの画面を一度閉じてしまい、また新たに開けると画面にはコマンドが何も残ってなかったので、また同じコマンドを入れると赤黒のエラーメッセージでもう既に存在してます~と表示されます(困)
もうやり直すことはできないのでしょうか?
小さい質問ですいません。
aki様
履歴については「get-history」コマンドレットを使うか、 キーボードの ↑ / ↓ キーで呼び出すことができます。
ただ1回閉じてしまった場合はhistoryコマンドで呼び出せません(´;ω;`)
が!windows10などpowershellのバージョンが5以上をお使いでしたら以下のファイルに履歴が残ってるかもしれません。
(PSReadlineというモジュールの仕様です)
“C:\Users\ユーザ名\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt”
もし、どうしても解決できない時は問い合わせ画面からエラーの内容などを送ってください!
ご協力できる範囲でご協力します(^^)/