PowerShellの使い方
PowerShellは、Windowsの強力なコマンドラインシェルであり、スクリプト言語です。システム管理、自動化、データ処理など、幅広いタスクを実行できます。
ここでは、PowerShellの基本的な使い方について説明します。
1. PowerShellの起動
- スタートメニューから起動:
- Windowsのスタートボタンを右クリックし、「Windows PowerShell」または「Windows PowerShell (管理者)」を選択します。管理者権限が必要な場合は「管理者」付きを選択します。
- 検索から起動:
- Windows検索バーに「PowerShell」と入力し、表示された「Windows PowerShell」をクリックします。
2. コマンドレットの基本的な使い方
PowerShellのコマンドは「コマンドレット」と呼ばれ、通常「動詞-名詞」の形式をしています(例: Get-Process
, Set-Location
)。
- ヘルプの表示:
- コマンドレットの使い方がわからない場合は、
Get-Help
コマンドレットを使用します。PowerShellGet-Help Get-ChildItem
- さらに詳しい情報を得るには、
-Full
や-Examples
パラメータを追加します。PowerShellGet-Help Get-ChildItem -Full Get-Help Get-ChildItem -Examples
- コマンドレットの使い方がわからない場合は、
- コマンドレットの検索:
- 利用可能なコマンドレットの一覧を表示するには、
Get-Command
を使用します。PowerShellGet-Command
- 特定のキーワードを含むコマンドレットを探すには、ワイルドカード
*
を使用します。PowerShellGet-Command *Service*
- 利用可能なコマンドレットの一覧を表示するには、
3. よく使う基本的なコマンドレット
いくつか基本的なコマンドレットを紹介します。
- ディレクトリの移動:
Set-Location
(エイリアス:cd
)PowerShellSet-Location C:\Users\YourName\Documents # 絶対パスで移動 Set-Location .. # 親ディレクトリへ移動 Set-Location MyFolder # 現在のディレクトリのサブフォルダへ移動
- ファイルやディレクトリの表示:
Get-ChildItem
(エイリアス:dir
,ls
)PowerShellGet-ChildItem # 現在のディレクトリのファイルとフォルダを表示 Get-ChildItem C:\Windows # 指定したディレクトリの内容を表示 Get-ChildItem -Path C:\MyData -Filter *.log # 特定の拡張子のファイルのみ表示 Get-ChildItem -Recurse # サブディレクトリも再帰的に表示
- ファイルの内容表示:
Get-Content
(エイリアス:cat
)PowerShellGet-Content MyFile.txt
- ファイルやディレクトリの作成:
New-Item
PowerShellNew-Item -ItemType Directory -Name MyNewFolder # 新しいフォルダを作成 New-Item -ItemType File -Name MyNewFile.txt # 新しいファイルを作成
- ファイルのコピー:
Copy-Item
PowerShellCopy-Item SourceFile.txt DestinationFolder # ファイルをコピー
- ファイルやディレクトリの削除:
Remove-Item
(エイリアス:del
,rm
)PowerShellRemove-Item MyFile.txt # ファイルを削除 Remove-Item MyFolder -Recurse # フォルダとその中のファイルを削除
- プロセスの表示:
Get-Process
PowerShellGet-Process # 現在実行中の全プロセスを表示 Get-Process -Name chrome # 特定のプロセスの情報を表示
4. パイプライン (|
) の活用
PowerShellの大きな特徴は、パイプラインを使ってコマンドレットの出力を別のコマンドレットの入力として渡せることです。これにより、複雑な処理を段階的に記述できます。
例: 実行中のプロセスの中から「chrome」という名前のプロセスを検索し、そのプロセスを停止する。
PowerShell
Get-Process -Name chrome | Stop-Process
Get-Process -Name chrome
でChromeのプロセスを取得し、|
(パイプライン) でその結果をStop-Process
に渡し、Chromeのプロセスを停止します。
5. 変数とオブジェクト
PowerShellでは、$
を使って変数を定義できます。また、コマンドレットはテキストではなく「オブジェクト」を出力するため、より構造化されたデータを扱えます。
PowerShell
$myVariable = "Hello, PowerShell!"
Write-Host $myVariable # 変数の内容を表示
$processes = Get-Process
$processes[0].Name # 最初のプロセスの名前を表示
6. スクリプトの作成と実行
PowerShellのコマンドをテキストファイル(拡張子 .ps1
)に保存することで、スクリプトとしてまとめて実行できます。
- スクリプトファイルの作成:
テキストエディタ(メモ帳、VS Codeなど)で、PowerShellのコマンドを記述し、
.ps1
拡張子で保存します。 例:MyScript.ps1
PowerShell# MyScript.ps1 Write-Host "Hello from my PowerShell script!" Get-Date
- 実行ポリシーの設定:
デフォルトでは、セキュリティのためにスクリプトの実行が制限されています。初めてスクリプトを実行する際は、実行ポリシーを変更する必要があります。管理者権限でPowerShellを起動し、以下のコマンドを実行します。
(PowerShellSet-ExecutionPolicy RemoteSigned
RemoteSigned
は、自分で作成したスクリプトは実行でき、インターネットからダウンロードしたスクリプトは署名されている場合に実行できるようにするポリシーです。自己責任で変更してください。) - スクリプトの実行:
PowerShellで、スクリプトファイルのパスを指定して実行します。
PowerShell
.\MyScript.ps1 # 現在のディレクトリにあるスクリプトを実行 C:\Scripts\MyScript.ps1 # 絶対パスでスクリプトを実行
7. 高度な使い方
PowerShellはさらに以下のような高度な機能を持っています。
- 関数: 独自のコマンドレットを作成できます。
- 条件分岐 (if/else): 条件に応じて処理を分岐させます。
- 繰り返し (for/foreach/while): 繰り返し処理を実行します。
- モジュール: 関連するコマンドレットや関数をまとめて管理し、再利用性を高めます。
- エラー処理: スクリプト実行中のエラーを適切に処理します。
- リモート処理: ネットワーク上の別のコンピューターに対してコマンドを実行できます。
PowerShellは非常に奥深く、システム管理や自動化を行う上で強力なツールとなります。まずは基本的なコマンドレットから触ってみて、徐々にパイプラインやスクリプト作成に挑戦していくと良いでしょう。
コメント
コメントを投稿