見出し画像

【PowerShell初心者向け】最初にやったほうがよいこと、覚えておくと得なこと

そんな訳で、まとめていこうと思っていた内容の、最初の投稿となります。

世の中便利なモノが沢山ありますが、PoweShellも結構手軽で便利です。
色々な理由でこれからPoweShellを使ってみよう、覚えてみようという方々、ご一読いただけるとお役に立つと思います♪

スクリプトを実行できる環境にしよう

Windows10や11などのクライアントOSでは、初期状態でPoweShellスクリプトの実行はできません。

スクリプトが実行できないと、色々便利にできません。
それは、人生の1/15を損するのと同じくらい勿体ない※です。
(※個人の感想です)

まずはPowerShellの【実行ポリシー】を変更しましょう。


実行ポリシーって何?

自分のPCで身元不明の怪しいスクリプトが簡単に実行されたら困ります。
よくわからないスクリプトの実行を防ぐ仕組みが、PowerShellの「実行ポリシー」ですね。

ちなみに、自分のPCに設定する実行ポリシーですが、特にこだわりが無ければ、「RemoteSigned」でよいと思います。

これは、

  • 自分で作ったスクリプトは実行できます

  • インターネットからダウンロードされた信頼できないスクリプトは実行されません

という内容なので普段使いには特に不便はなく、セキュリティもそれなりに担保されています。
詳細や他の実行ポリシーについては、以下をご参照ください。


実行ポリシーの変更

念のため、現在の実行ポリシーを確認しましょう。

1)PowerShellのコンソールを起動します。
2)「Get-ExecutionPolicy」を実行します。
すると、現在の実行ポリシーがわかります。

Get-ExecutionPolicy

「Restricted 」でしたら実行ポリシーを変更しましょう。(「RemoteSigned」でしたら、この後の手順は不要です。。。。が、この後の、「おまけ」も見てみてくださいませ。損はさせないかと♪)

1.実行ポリシーの変更(よく紹介されているやり方)

1)Windowsのスタートメニュー隣にある、検索バーに「PowerShell」と入力します。

2)検索結果に「PowerShell」が表示されます。
右クリックして、「管理者として実行」を選択します。

3)「このアプリがデバイスに変更を加えることを許可しますか?」と出てきたら「はい」をクリックします。

もし以下のように、管理者のユーザー名とパスワードを求められたら「いいえ」で終了して、次の「2.権限が足りない場合のやり方」に進んでください。

4)「はい」をクリックすると、「管理者:Windows PowerShell」コンソールが起動します。

5)次に起動コンソールで「Set-ExecutionPolicy RemoteSigned」を実行し、実行ポリシーを「RemoteSigned」に変更します。

Set-ExecutionPolicy RemoteSigned

6)「実行ポリシーの変更」の確認があるので「Y」を入力して「Enter」キーを押下します。

7)エラーなく終了したら成功です。
ここで、「Set-ExecutionPolicy : レジストリ キー 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell' へのアクセスが拒否されました。」とエラーになった場合は、「管理者:Windows PowerShell」で実行していません。
再度、1)から実行してください。

8)念のため「Get-ExecutionPolicy」を実行し、実行ポリシーが「RemoteSigned」になっていることを確認しましょう。

これでめでたくPowerShellスクリプトを実行できるようになりました♪


2.権限が足りない場合のやり方

PowerShellが「管理者として実行」出来ないのは、PCにサインインしたユーザーの権限が不足しています。
その場合でも、全然問題ありません。以下を実行しましょう。

1)普通にPowerShellコンソールを起動します。

2)次に「Set-ExecutionPolicy RemoteSigned -Scope CurrentUser」を実行して、実行ポリシーを「RemoteSigned」に変更します。

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

3)「実行ポリシーの変更」の確認があるので「Y」を入力して「Enter」キーを押下します。

4)エラーなく終了したら成功です。
5)念のため「Get-ExecutionPolicy」を実行し、実行ポリシーが「RemoteSigned」になっていることを確認しましょう。

これでめでたくPowerShellスクリプトを実行できるようになりました♪


おまけ1:エラーメッセージはよく読んでね


初心者あるあるですが、エラーが出ると直ぐにグーグル様にお伺いを立てたくなります。
まずは慌てず騒がず、じっくりエラーメッセージを読んでみてください。

例えば今回の実行ポリシー変更を失敗した場合のエラーですが、

Set-ExecutionPolicy : レジストリ キー 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell
' へのアクセスが拒否されました。 既定 (LocalMachine) のスコープの実行ポリシーを変更するには、[管理者として実行] オプシ
ョンを使用して Windows PowerShell を起動してください。現在のユーザーの実行ポリシーを変更するには、"Set-ExecutionPolicy
-Scope CurrentUser" を実行してください。

全部書いてあるやん・・・・・

毎回、全部書いてあるわけではありませんが、エラーを解消するためのヒントは必ず書いてありますので。
そこからググっても遅くありません。


おまけ2:モジュール追加も同じ感じで

いきなりPowerShell初心者向けではない話で恐縮すが、覚えておいて損はないものを一つ。

PowerShellはモジュールを追加することで、出来ることを増やせます。
例えば、Microsoft365のExchangeOnlineのモジュールでしたら

Install-Module -Name ExchangeOnlineManagement

ですが、権限のないユーザーで実行すると、

エラーになります。

この場合でも、「実行ポリシー」と同じように「-Scope CurrentUser」をつければ、インストール出来ます。

Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser

こんな感じ。


今回は、こんなところで。
最後までお付き合いいただき、ありがとうございました。

この記事が気に入ったらサポートをしてみませんか?