Windows PowerShell スクリプト作成チュートリアル
PowerShell スクリプト作成により、レポートの取得からアカウントの一括更新まで、Windows および Active Directory の反復的な作業を自動化できます。このチュートリアルは基本から始めます。変数、パイプライン、ループ、関数を学んだ後、今日すぐに実行できるスクリプトを作れるところまで段階的に進めます。AD アカウントとコンピューターの管理、ファイル システムの作業、スクリプトのスケジューリングに関する完全な手順を収めたガイドをダウンロードして、必要なときにすぐ使える動作するスクリプトを手元に用意しましょう。
PowerShell コマンドのスクリプト作成チュートリアル(PDF)をダウンロード
PowerShell スクリプトはどのように書きますか?
PowerShell スクリプトは、.ps1 拡張子で保存するプレーンテキストのファイルです。どのテキスト エディターでも作成できますが、多くの人は構文のハイライト、自動補完、統合デバッグのために PowerShell 拡張機能付きの Visual Studio Code を使用します。コマンドは1行に1つずつ書き、ファイルを保存して実行してください。
まずは小さく始めましょう。値を取得して表示する2行のスクリプトは、すべての PowerShell ユーザーが頼りにしている中核ループを教えてくれます。つまり「書く、実行する、調整する」です。セクションが何をするのかをメモするために、行の先頭に # を付けたコメントを入れてください。数か月後に読むスクリプトが、自分で内容を説明してくれることはほとんどありません。このチュートリアルは各概念を前の内容の上に積み重ていくので、初心者でも最初から最後まで迷わずに進められます。
基本的な PowerShell コマンドとは何ですか?
cmdlet と呼ばれる PowerShell コマンドは、動詞-名詞のパターンに従うため、読んだり意味を推測したりしやすくなっています:Get-, Set-, New-, and Remove-。いくつかの cmdlet で、ほとんどの初日タスクをカバーできます:
Get-Help:任意の cmdlet の構文と例を調べるGet-Command:現在のセッションで利用可能なすべての cmdlet を一覧表示するGet-Member: オブジェクトのプロパティとメソッドを確認しますGet-Process: 実行中のプロセスを表示しますGet-ChildItem: ファイル、フォルダー、またはレジストリキーを一覧表示します
次を入力 Get-Help <cmdlet name> -Examples 記憶をリフレッシュしたいときはいつでも。PowerShell の組み込みヘルプには、ほぼすべての cmdlet が含まれています。このチートシートはタスクごとに整理されているため、スクリプトの途中で探す必要がありません。
PowerShell スクリプトはどのように実行しますか?
PowerShellを開き、スクリプトのフォルダーに移動して、次のように実行します。 .\scriptname.ps1。メッセージに「スクリプトの実行が無効になっているため、このスクリプトを読み込めません」と表示される場合は、スクリプトではなく PowerShell の実行ポリシーがブロックしていることを意味します。
実行ポリシーにはいくつかのレベルがあり、「厳しく制限」から「完全にオープン」まで幅があります。間違ったレベルを選ぶと、動かなくて詰まってしまうか、逆にシステムがさらされてしまう可能性があります。このガイドでは各レベルを説明し、日常的なスクリプト作成において適切なバランスを取れるのはどれか、そしてそれを安全に設定するための正確なコマンドを示します。
変数、ループ、関数はどのように使いますか?
変数は $ の接頭辞を付けて値を保存します。たとえば $name = "Server01"。テキスト、数値、あるいはオブジェクト全体を保持でき、PowerShell が型を自動で判断します。
ループは、コレクションに対して同じ処理を繰り返します。foreach ループは、最もよく使うものです:
foreach ($user in $users) {
Write-Host $user.Name
}
関数パッケージは再利用できるロジックをまとめるので、一度書いて何度も呼び出せます:
function Get-Greeting($name) {
"Hello, $name"
}
各概念には、貼り付けて自分用に調整できる短く実行可能な例が用意されています。
Active Directory では、PowerShell で何を自動化できますか?
RSAT(Remote Server Administration Tools)と一緒にインストールされる PowerShell の ActiveDirectory モジュールには、ディレクトリ関連の作業に特化して作られた cmdlet が追加されます。よくある成果:
- 非アクティブなアカウントのレポート with
Search-ADAccount -AccountInactive - 特定の OU 内のユーザーを見つけるには
Get-ADUser -SearchBase - パスワードを一括でリセット)
Set-ADAccountPassword - グループのメンバーシップを監査するには
Get-ADGroupMember
このチュートリアルの実例では各パターンが示されているため、空のスクリプトから始めることなく、自分の環境に合わせて調整できます。
長期的にスクリプトを保守したくないチーム向けに、目的に合わせて作られたツールなら、同じ AD reporting と change tracking をカスタムコードなしで実現できます。
よくある質問(FAQs)
共有する