技術ノート 特徴 Geek School: PowerShell を使用して Windows を自動化する方法を学ぶ

Geek School: PowerShell を使用して Windows を自動化する方法を学ぶ

Geek School: PowerShell を使用して Windows を自動化する方法を学ぶ

今回の Geek School では、Windows に直接組み込まれており、IT 環境で知っておくと非常に役立つ強力な PowerShell スクリプト言語について理解できるように支援します。

Geek School: PowerShell を使用して Windows を自動化する方法を学ぶ

このシリーズは試験を中心に構成されていませんが、PowerShell の学習はネットワーク管理者としてできる最も重要なことの 1 つであるため、IT キャリアに役立つために学びたいことが 1 つあるとしたら、これがそれです。それに、とても楽しいです。

導入

Geek School: PowerShell を使用して Windows を自動化する方法を学ぶ

PowerShell は Microsoft が提供する最も強力な自動化ツールであり、 シェル スクリプト言語の 両方を備えています。

このシリーズは、Windows 8 および Server 2012 に同梱されている PowerShell 3 に基づいていることに注意してください。Windows 7 を実行している場合は、続行する前に PowerShell 3 アップデートをダウンロードしてください。

Geek School: PowerShell を使用して Windows を自動化する方法を学ぶ

コンソールと ISE について説明します

PowerShell をすぐに操作するには、コンソールと統合スクリプト環境 (ISE とも呼ばれる) の 2 つの方法があります。 ISE は、PowerShell 2 に同梱されていたひどいバージョンから大幅に改善されており、Win + R キーボードの組み合わせを押して実行ボックスを表示し、powershell_ise と入力して Enter キーを押すことで開くことができます。

ご覧のとおり、ISE は分割ビューを備えているため、ISE の下半分で結果を確認しながら、迅速にスクリプトを作成できます。 ISE の下半分には、スクリプトの結果が出力されますが、コマンド プロンプトと同様に、REPL プロンプトとしても使用できます。 v3 ISE では、最終的に、スクリプト ペインと対話型コンソールの両方でインテリセンスのサポートが追加されました。

あるいは、PowerShell コンソールを使用して PowerShell を操作することもできます。これは、このシリーズのほとんどで使用します。 PowerShell コンソールはコマンド プロンプトとよく似た動作をします。コマンドを入力するだけで結果が出力されます。 Windows PowerShell コンソールを開くには、もう一度 Win + R キーボードの組み合わせを押して実行ボックスを開き、「powershell」と入力して Enter キーを押します。

このような REPL プロンプトは、コマンドを入力すると結果が得られるため、即座に満足感を得るのに最適です。コンソールはインテリセンスを提供しませんが、ほぼ同じように機能するタブ補完と呼ばれるものを提供します。単にコマンドの入力を開始し、Tab キーを押して、一致する可能性のあるものを順に表示します。

Geek School: PowerShell を使用して Windows を自動化する方法を学ぶ

ヘルプ システムの使用

PowerShell の過去のバージョンでは、Windows のインストール時にヘルプ ファイルが組み込まれていました。これはほとんどの場合良い解決策でしたが、重大な問題が残りました。 PowerShell ヘルプ チームがヘルプ ファイルの作業を中止しなければならなかったときも、PowerShell 開発者はコーディングと変更に追われていました。これは、PowerShell の出荷時に、コードに加えられた新しい変更が含まれていなかったため、ヘルプ ファイルが間違っていたことを意味します。この問題を解決するために、PowerShell 3 には、初期状態ではヘルプ ファイルが付属しておらず、更新可能なヘルプ システムが組み込まれています。つまり、何かを行う前に、最新のヘルプ ファイルをダウンロードする必要があります。これを行うには、PowerShell コンソールを開いて次を実行します。

アップデート – ヘルプ

初めての PowerShell コマンドの実行が完了しました。おめでとうございます。実際のところ、Update-Help コマンドには、単に実行するだけではなく、さらに多くのオプションがあり、それらを確認するには、コマンドのヘルプを表示する必要があります。コマンドのヘルプを表示するには、次のように、ヘルプが必要なコマンドの名前を Get-Help コマンドの Name パラメーターに渡すだけです。

Get-Help –名前の更新-ヘルプ

おそらく、このすべてのテキストをどのように解釈すればよいのか疑問に思っているでしょう。つまり、なぜ構文セクションの下に 2 つの多くの情報があり、なぜあちこちにこれほど多くの括弧があるのでしょうか?まず最初に、構文セクションの下に 2 つの情報ブロックがある理由は、それらがコマンドを実行するさまざまな方法を表すためです。これらは技術的にはパラメータ セットと呼ばれ、一度に 1 つだけ使用できます (異なるセットのパラメータを混合することはできません)。上のスクリーンショットでは、上部のパラメータ セットには SourcePath パラメータがあり、下部には含まれていないことがわかります。その理由は、既にダウンロードされているネットワーク上の別のマシンからヘルプ ファイルを更新する場合は、最上位のパラメータ セット (SourcePath を含むパラメータ セット) を使用することになるのに対し、次の場合はソース パスを指定する必要がないためです。 Microsoft から最新のファイルを入手したかっただけです。

2 番目の質問に答えるには、ヘルプ ファイルが従う特定の構文があり、それは次のとおりです。

  • パラメータ名とその型を囲む角括弧は、それがオプションのパラメータであり、それがなくてもコマンドが正常に動作することを意味します。
  • パラメータ名を囲む角括弧は、パラメータが位置パラメータであることを意味します。
  • パラメータの右側の山かっこ内の内容は、パラメータが予期しているデータ型を示します。

ヘルプ ファイルの構文を読む方法を学ぶ必要がありますが、特定のパラメータについて不明な点がある場合は、get help コマンドの最後に –Full を追加し、パラメータ セクションまで下にスクロールすると、各パラメータについてもう少し詳しく説明されます。パラメータ。

Get-Help –名前の更新-Help –完全

ヘルプ システムについて最後に知っておく必要があるのは、ヘルプ システムを使用してコマンドを見つける方法です。これは実際には非常に簡単です。ご存知のとおり、PowerShell はほぼどこでもワイルドカードを受け入れるため、Get-Help コマンドと一緒にワイルドカードを使用すると、コマンドを簡単に見つけることができます。たとえば、Windows サービスを処理するコマンドを探しています。

Get-Help –名前 *サービス*

確かに、この情報のすべてがバットにとって役立つわけではないかもしれませんが、時間をかけてヘルプ システムの使用方法を学んでください。これは、何年もこの作業を行っている上級スクリプト作成者にとっても、いつでも便利です。

Geek School: PowerShell を使用して Windows を自動化する方法を学ぶ

安全

セキュリティについて触れずに、適切な紹介とは言えません。 PowerShell チームにとっての最大の懸念は、PowerShell がスクリプト小僧にとって最新にして最大の攻撃ポイントになることです。このようなことが起こらないように、いくつかのセキュリティ対策を講じているので、それを見てみましょう。

最も基本的な保護形式は、PS1 ファイル拡張子 (PowerShell スクリプトを示すために使用される拡張子) が PowerShell ホストに登録されておらず、実際にはメモ帳に登録されているという事実に基づいています。つまり、ファイルをダブルクリックすると、ファイルは実行されずにメモ帳で開かれます。

次に、スクリプト名を入力するだけではシェルからスクリプトを実行することはできません。スクリプトへのフルパスを指定する必要があります。したがって、C ドライブでスクリプトを実行したい場合は、次のように入力する必要があります。

C:\runme.ps1

または、すでに C ドライブのルートにある場合は、次のコマンドを使用できます。

.\runme.ps1

最後に、PowerShell には実行ポリシーと呼ばれるものがあり、古いスクリプトの実行を停止します。実際、デフォルトではスクリプトを実行できないため、スクリプトの実行を許可したい場合は実行ポリシーを変更する必要があります。注目すべき実行ポリシーが 4 つあります。

  • 制限付き : これは PowerShell のデフォルト構成です。この設定は、署名に関係なく、スクリプトを実行できないことを意味します。この設定で PowerShell で実行できるのは、個別のコマンドのみです。
  • AllSigned: この設定では、PowerShell でスクリプトを実行できます。スクリプトには、信頼できる発行元からのデジタル署名が関連付けられている必要があります。信頼できる発行元からのスクリプトを実行する前に、プロンプトが表示されます。
  • RemoteSigned : この設定ではスクリプトの実行が許可されますが、インターネットからダウンロードされるスクリプトと構成ファイルには、信頼できる発行元からのデジタル署名が関連付けられている必要があります。ローカル コンピューターから実行されるスクリプトには署名する必要はありません。スクリプトを実行する前にプロンプ​​トは表示されません。
  • 無制限 : これにより、インターネットからダウンロードされたすべてのスクリプトと構成ファイルを含む、署名されていないスクリプトの実行が許可されます。これには、Outlook と Messenger のファイルが含まれます。ここでのリスクは、署名やセキュリティなしでスクリプトを実行することです。この設定は絶対に使用しないことをお勧めします。

現在の実行ポリシーの設定を確認するには、PowerShell コンソールを開いて次のように入力します。

実行ポリシーの取得

このコースやその他のほとんどの状況では、RemoteSigned ポリシーが最適であるため、次の手順に従ってポリシーを変更してください。

注: これは、管理者特権の PowerShell コンソールから実行する必要があります。

Set-ExecutionPolicy RemoteSigned

今回はここまでです。PowerShell をもっと楽しむために、また明日お会いしましょう。


免責事項: PowerShell コマンドの適切な用語はコマンドレットであり、今後はこの正しい用語を使用します。この紹介では、これらをコマンドと呼ぶ方が適切だと感じました。


ご質問がございましたら、 @taybgibb にツイートしていただくか、コメントを残してください。

「 Geek School: PowerShell を使用して Windows を自動化する方法を学ぶ」に関するベスト動画選定!

Windows11●10●Windows PowerShellをPowerShell7にアップする方法
【PowerShell 一行自動化】BashよりPowerShellをオススメする理由