最も便利な Powershell コマンド: 例を含むチートシート
公開: 2023-07-23- PowerShell の使用を開始する
- PowerShell コマンド構造の詳細
- ファイルとフォルダーの管理
- システムプロセスの管理
- ネットワーク管理
- Active Directory管理
- イベントログ管理
- パフォーマンスの監視と分析
- リモート処理と PowerShell セッション
- セキュリティと実行ポリシー
- 高度な PowerShell テクニック
- 以下の 30 の追加 PowerShell コマンド
- 結論
- よくある質問
- Windows PowerShell コマンドを使用するにはどうすればよいですか?
- Windows 7 で PowerShell コマンドのリストを取得するにはどうすればよいですか?
- Windows 以外のシステムで PowerShell を使用できますか?
- PowerShell でスクリプトを作成できますか?
- PowerShell を使用してクラウドベースの環境を管理できますか?
システム管理の世界に興味を持ったことがある人なら、Windows PowerShell や PowerShell コマンドに遭遇したことがあるでしょう。 これは便利なツールであり、オペレーティング システムの内部動作にアクセスできるシェル スクリプト言語です。
従来のコマンド プロンプト (CMD) よりも優れており、より強力なパワー、柔軟性、および制御を提供します。
単純なコマンド ライン命令を利用する CMD とは異なり、 Windows PowerShell はより広範な言語を採用し、 PowerShell コマンドのリストまたは複雑なシステム タスク用のコマンドレットを利用します。
システム管理者は、このツールを活用することで作業が大幅に改善されることがわかります。 それは単に物事を簡単にするだけではありません。 重要なのは、効率、正確さ、そして反復的なタスクを自動化する能力です。
PowerShell の使用を開始する
PowerShell が何であるかについては理解できたので、ここで詳しく説明します。開始は非常に簡単です。 主なルートは 2 つあります。
- PowerShell コンソール
- 統合スクリプト環境 (ISE)。
コンソールはコマンドラインインターフェイスです。 これは、コマンドがシステムに到達して操作するための直接パスです。 一方、ISE はスクリプト作成の遊び場です。 ここでは、フレンドリーでユーザー中心の環境で PowerShell スクリプトを作成、テスト、デバッグできます。
スムーズに進めるために、いくつかの基本的な PowerShell コマンドについて説明します。
説明: Windows PowerShell のコマンドとトピックに関するヘルプ情報を表示します。
例: 「Get-Help Get-Process」と入力すると、Get-Process コマンドのヘルプが表示されます。
その名前が示すように、 Get-Help は PowerShell の世界を案内するガイドです。 これは、他のコマンドの機能を調べることができる組み込みのマニュアルです。
説明: PowerShell で使用可能なすべてのコマンドのリストを取得します。
例: Get-Command -Module ActiveDirectory と入力すると、ActiveDirectory モジュールで使用可能なすべてのコマンドがリストされます。
Get-Command は、 PowerShell コマンド チート シートのもう 1 つの貴重なツールです。 これを使用すると、PowerShell が提供するすべてのコマンドを表示できます。
PowerShell コマンド構造の詳細
PowerShell コマンドは、コマンドレット、エイリアス、スクリプトという 3 つの主要な構造を中心に構築されています。
コマンドレット (コマンドレット) は PowerShell の中心です。 これらは特定の機能を実行する軽量のコマンドです。 従来の実行可能プログラムとは異なり、コマンドレットは .NET Framework クラス オブジェクトです。 簡単に言うと、これらはデータの取得、システム設定の変更、プロセスの実行などの処理を行うコードの一部です。
説明: 実行中のすべてのプロセスのリストを取得します。
例: Get-Process と入力すると、システム上で現在実行中のすべてのプロセスが表示されます。
エイリアスはコマンドレットの単なるショートカットです。 たとえば、 Get-ChildItemと入力する代わりに、単にdir と入力することもできます。これは、より早くて覚えやすいです。
最後に、スクリプトは、順番に実行される一連のコマンドレットを含むテキスト ファイルです。 これらは自動化のバックボーンであり、手動入力なしで複雑なタスクを実行できるようにします。 この知識と増え続けるPowerShell コマンドのリストがあれば、PowerShell プロへの道は順調に進んでいます。
ファイルとフォルダーの管理
ファイル システムの主導権を握るのは、気が遠くなるような作業になる可能性があります。 幸いなことに、PowerShell が役に立ちます。 豊富なコマンドレットを使用すると、ファイルとフォルダーをシームレスに管理できます。
説明: 指定した場所にある項目と子項目を表示します。
例: Get-ChildItem C:\Documents と入力すると、Documents ディレクトリ内のすべてのアイテムが表示されます。
このコマンドレットは、ファイル管理用のPowerShell コマンド リストの重要なメンバーです。 ファイルやフォルダーをリストするだけでなく、ディレクトリをさらに深く掘り下げてその中に隠された宝物を明らかにすることもできます。
説明: ファイルやフォルダーなどの新しいアイテムを作成します。
例: New-Item -Path と入力します。-Name "file.txt" -ItemType "file" -Value "powershell 新しい項目デモ ファイルの現在のディレクトリ"
新しいファイル file.txt がドキュメント フォルダーに出現するのを確認します。
システムプロセスの管理
ここで、ギアを変えて、システム プロセスについて話しましょう。 彼らは、演劇作品が滞りなく進行するように舞台裏で熱心に働く、舞台裏のスタッフだと考えてください。 PowerShell は、これらの縁の下の力持ちを監視、操作、管理するためのコマンドを提供します。
説明:指定されたプロセスのリストのステータスを取得します。
例: Get-Process と入力すると、マシン上で現在実行中のすべてのプロセスが表示されます。
上記は、Windows 10 でシステム プロセスを管理するために最も頻繁に使用される PowerShell コマンドの 1 つです。 画面の背後で何が起こっているかのスナップショットを提供します。
サービスの操作
システム プロセスと同様に、サービスはシステムをスムーズに実行し続けるための重要な歯車です。 バックグラウンドで実行されるプログラムがあり、PowerShell を使用すると、それらを注意深く監視できます。
説明: ローカルまたはリモート コンピューター上のサービスのステータスを取得します。
例: Get-Service を実行すると、コンピューター上のすべてのサービスのステータス更新が取得されます。
説明: 実行中の 1 つ以上のサービスを停止します。
例: Stop-Service -Name "serviceName" は、指定されたサービスを停止します。
これらのPowerShell コマンドの例は、 PowerShell でできることのほんの表面をなぞっただけです。 PowerShell の本当の美しさは、その柔軟性と、特定のニーズに合わせてカスタマイズできる範囲にあります。
ネットワーク管理
ネットワークの管理は、ピースが無限にあるジグソーパズルを解こうとしているように感じるかもしれません。 幸いなことに、PowerShell を使用すると、この作業を容易にするツールがないわけではありません。 ここでは、役立ついくつかの主要な PowerShell コマンドを紹介します。
説明: 接続の診断情報を表示します。
例: 「Test-NetConnection」と入力して、マシンのネットワーク接続をテストします。
説明: IP アドレスの設定を表示します。
例: Get-NetIPAddress を実行すると、マシンの IP アドレスの詳細が表示されます。
これらのコマンドレットは、問題を診断し、重要なネットワーク構成の詳細を明らかにするのに役立ちます。
Active Directory管理
ネットワーク管理の世界では、Active Directory (AD) がオフィスの管理者として、あらゆるネットワーク リソースを追跡します。 PowerShell には、AD の管理を簡単にする便利なコマンドが満載されています。
説明: ユーザー オブジェクトを取得するか、検索を実行して複数のユーザー オブジェクトを取得します。
例: Get-ADUser -Filter * は、AD 内のすべてのユーザーのリストを表示します。
説明: 新しい AD ユーザーを作成します。
例: New-ADUser -Name "JohnDoe" のようなコマンドを使用すると、JohnDoe という名前の新しいユーザーを作成できます。
イベントログ管理
イベント ログはシステムの日記のようなもので、システムの思考や行動を記録します。 これらはトラブルシューティングのための非常に貴重なツールです。 Windows 10 でイベント ログと対話する PowerShell コマンドを実行する方法は次のとおりです。
説明: イベント ログ内のイベント、またはイベント ログのリストを取得します。
例: Get-EventLog -LogName システムはシステム イベント ログを表示します。
説明: 指定されたイベント ログからすべてのエントリをクリアします。
例: Clear-EventLog -LogName "Application" は、アプリケーション イベント ログを白紙に戻します。
これらは最も一般的な PowerShell コマンドの一部ですが、検討すべきコマンドは他にも無数にあることを覚えておくことが重要です。 PowerShell の適応性と堅牢な機能により、PowerShell はシステム管理者にとって不可欠なツールとなっています。
パフォーマンスの監視と分析
よく調整されたオーケストラのように、システムが最高のパフォーマンスを発揮するには定期的な微調整が必要です。 パフォーマンス監視により、システム リソースが効率的に使用されていることを確認します。 ここでは、内部を覗くことができる Windows PowerShell コマンドをいくつか紹介します。
説明: 指定されたプロセスのリストのステータスを取得します。
例: Get-Process を実行すると、マシン上で現在実行中のすべてのプロセスが表示されます。
説明: スクリプト ブロックの実行にかかる時間を測定します。
例: Measure-Command {Get-Process} は、Get-Process コマンドの実行にかかった時間を示します。
説明: ローカルおよびリモート コンピューターからパフォーマンス カウンター データを取得します。
例: Get-Counter -Counter “\Processor(_Total)\% Processor Time” を実行すると、CPU 使用率の統計が得られます。
こちらもお読みください: Windows でハード ドライブのパフォーマンスを高速化するにはどうすればよいですか?
リモート処理と PowerShell セッション
PowerShell の主な長所は、リモート コンピューターを管理できることにあります。 リモート マシンとのセッション、つまり永続的な接続を確立できます。 これらのコマンドレットがなければ、PowerShell コマンドのチートシートは完成しません。
説明: リモート コンピューターとの対話型セッションを開始します。
例: Enter-PSSession -ComputerName Server01 を使用すると、Server01 と直接対話できます。
説明: 新しい PowerShell セッションを作成します。
例: New-PSSession -ComputerName Server02 は、Server02 との新しいセッションを作成します。
説明: 1 つ以上の PowerShell セッションを閉じます。
例: Remove-PSSession -Session $s は、$s 変数に保存されているセッションを閉じます。
PowerShell プロファイルの操作
個人プロファイルと同様、 PowerShell プロファイルはPowershell の起動時に実行されるスクリプトであり、環境を定義します。 プロファイルを管理するためのコマンドレット PowerShellコマンドをいくつか紹介します。
説明: パスのすべての要素が存在するかどうかを判断します。
例: Test-Path $profile は、プロファイルが存在するかどうかを確認します。
説明: ファイルやフォルダーなどの新しいアイテムを作成します。
例: Test-Path $profile が False を返した場合、New-Item -Type file -Path $profile -Force は新しいプロファイルを作成します。
説明: ファイルをメモ帳で開きます。
例: Notepad $profile は、メモ帳でプロファイルを開き、編集できるようにします。
これらのコマンドを理解して活用することで、好みや作業スタイルに合わせて PowerShell 環境をカスタマイズできます。
セキュリティと実行ポリシー
PowerShell の領域では、セキュリティは堅固な門番のようなもので、スクリプトとコマンドが安全に実行されることを保証します。 ここでは、実行ポリシーを定義して理解するのに役立つ基本的な PowerShell コマンドをいくつか紹介します。
説明: 現在のセッションの実行ポリシーを取得します。
例: Get-ExecutionPolicy は、現在の実行ポリシーを表示します。
説明: PowerShell セッションの実行ポリシーを設定します。
例: Set-ExecutionPolicy RemoteSigned は、信頼できる発行者によって署名されたスクリプトのみを実行するようにポリシーを設定します。
説明: スクリプトまたはファイルのデジタル署名を取得します。
例: Get-AuthenticodeSignature C:\Scripts\Test.ps1 は、Test.ps1 スクリプトのデジタル署名を示します。
高度な PowerShell テクニック
PowerShell の海を深く掘り下げていくと、基本的なコマンドレット以外にもたくさんのコマンドレットが含まれていることがわかります。 高度な機能により、柔軟性と機能性が向上し、難しい作業ではなく、よりスマートな作業が可能になります。 以下に、可能性を明らかにするためのPowerShell コマンドの例をいくつか示します。
説明: ローカルおよびリモート コンピューターでコマンドを実行します。
例: Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Process} は、Server01 で Get-Process コマンドを実行します。
説明: .NET オブジェクトを CSV 文字列に変換し、結果を CSV ファイルに保存します。
例: Get-Process |Export-Csv -Path .\ProcessList.csv は、プロセス リストを CSV ファイルに保存します。
説明: オブジェクトを JSON 表現に変換します。
例: Get-Process |ConvertTo-Json は、プロセス リストを JSON 形式に変換します。
説明: オブジェクトまたはオブジェクトのセットの指定されたプロパティを選択します。配列から一意のオブジェクトを選択することもできます。
例: Get-Process |[Select-Object -Property Name,ID] には、プロセスの名前と ID のみが表示されます。
説明: パイプラインからの入力をフィルタリングして、コマンド シーケンスに沿って渡されるオブジェクトを制御できるようにします。
例: Get-Process |Where-Object {$_.CPU -gt 10} は、10 個を超える CPU ユニットを使用するプロセスを表示します。
説明: 一連の入力オブジェクトのそれぞれに対して操作を実行します。
例: Get-Process |ForEach-Object { $_.Name + ” ” + $_.Id } は、プロセス名のリストをその ID とともに表示します。
これらのPowerShell の便利なコマンドは、 Powershell の機能をさらに活用するために使用できる高度なテクニックを示しています。 リモート コンピューターでのコマンドの呼び出しから、出力のフィルター処理や書式設定まで、可能性は無限にあります。
PowerShell コマンドの実行方法がわからない場合は、Get-Help コマンドレットが頼りになることを覚えておいてください。 「Get-Help」と入力し、その後にヘルプが必要なコマンドレットを入力するだけです。 この上位の PowerShell コマンドリストは始まりにすぎません。 PowerShell の可能性はあなたの想像力によってのみ制限されます。
以下の 30 の追加 PowerShell コマンド
指図 | 説明 |
アウトファイル | 出力をファイルに送信します。 |
ソートオブジェクト | オブジェクトをプロパティ値で並べ替えます。 |
変数の設定 | 変数の値を設定します。 |
読み取りホスト | コンソールから入力行を読み取ります。 |
書き込みホスト | カスタマイズされた出力をホストに書き込みます。 |
コンテンツの追加 | ファイルに行を追加するなど、指定された項目にコンテンツを追加します。 |
アイテムのコピー | アイテムをある場所から別の場所にコピーします。 |
テストパス | パスの存在をテストし、パスが存在する場合は True を返し、存在しない場合は False を返します。 |
日付の取得 | 現在の日付と時刻を取得します。 |
クリアホスト | ホストプログラムの表示をクリアします。 |
比較オブジェクト | 2 つのオブジェクトのセットを比較します。 |
HTML に変換 | .NET オブジェクトを Web ブラウザで表示できる HTML に変換します。 |
資格情報の取得 | ユーザー名とパスワードに基づいて資格情報オブジェクトを取得します。 |
ランダムを取得 | 乱数を取得するか、コレクションからオブジェクトをランダムに選択します。 |
新しいオブジェクト | .NET Framework または COM オブジェクトのインスタンスを作成します。 |
項目名の変更 | Windows PowerShell プロバイダー名前空間内の項目の名前を変更します。 |
スタート-スリープ | 指定された期間、スクリプト内のアクティビティを一時停止します。 |
書き込み出力 | 指定されたオブジェクトをパイプラインの次のコマンドに送信します。 |
分割パス | パスの指定された部分を返します。 |
結合パス | パスと子パスを 1 つのパスに結合します。 |
ForEach-Object | 入力オブジェクトのコレクション内の各項目に対して操作を実行します。 |
Where-オブジェクト | プロパティ値に基づいてコレクションからオブジェクトを選択します。 |
開始プロセス | ローカル コンピューター上で 1 つ以上のプロセスを開始します。 |
フォーマットリスト | 出力をプロパティのリストとしてフォーマットし、各プロパティが個別の行に表示されます。 |
フォーマットテーブル | 出力をテーブルとしてフォーマットします。 |
エクスポート-Clixml | オブジェクトの XML ベースの表現を作成し、ファイルに保存します。 |
インポート-Clixml | ClXML ファイルをインポートし、保存されたオブジェクトを再作成します。 |
ConvertFrom-CSV | CSV 文字列のオブジェクト プロパティを元のオブジェクトの CSV バージョンに変換します。 |
Csv に変換 | .NET オブジェクトを一連の CSV 文字列に変換します。 |
選択文字列 | 文字列およびファイル内のテキストを検索します。 |
結論
ここまでで、 PowerShell コマンドの包括的なリストとその可能性について明確に理解できるはずです。 タスクの自動化、ネットワーク リソースの管理、問題のトラブルシューティングのいずれの場合でも、PowerShell は Windows ユーザーや管理者にとって不可欠なツールです。
これらのPowerShell コマンドレットは、可能なことのほんの表面をなぞっただけです。 コンソールに慣れてくると、新しいコマンドを発見したり、ニーズを完全に満たすスクリプトを作成したりできるようになります。
Get-Help コマンドレットは、特定のコマンドレットに関する詳細情報が必要なときに常にPowerShell コマンドのヘルプを提供するために存在することに注意してください。 「Get-Help」と入力し、その後にヘルプが必要なコマンドレットを入力するだけです。
よくある質問
Windows PowerShell コマンドを使用するにはどうすればよいですか?
Windows PowerShell コマンドの使用は簡単です。 PowerShell コンソールにコマンドを入力し、Enter キーを押します。 特定のコマンドに関するヘルプが必要な場合は、「Get-Help」と入力してから、さらに詳しく知りたいコマンドを入力してください。
Windows 7 で PowerShell コマンドのリストを取得するにはどうすればよいですか?
Windows 7 の PowerShell でコマンドのリストを取得するには、コンソールに「Get-Command」と入力して Enter キーを押します。 これにより、使用可能なすべてのコマンドレットと関数が表示されます。
Windows PowerShell がコマンドを理解できないのはなぜですか?
PowerShell がコマンドを理解できない場合は、構文エラーが原因である可能性があります。 コマンドにタイプミスやパラメータが間違っていないか確認してください。 また、実行しようとしているコマンドに正しいバージョンの PowerShell を使用していることを確認してください。
Windows 以外のシステムで PowerShell を使用できますか?
はい、できます。 PowerShell Core の登場により、Microsoft の PowerShell は Windows に限定されなくなりました。 macOS や Linux でも使用できます。
PowerShell でスクリプトを作成できますか?
絶対! PowerShell はコマンドライン インターフェイスであるだけでなく、スクリプト言語でもあります。 スクリプトを作成して反復的なタスクを自動化すると、時間と労力を大幅に節約できます。
PowerShell を使用してクラウドベースの環境を管理できますか?
はい、PowerShell はクラウドベースの環境を管理するための強力なツールです。 Microsoft Azure や Amazon AWS などの多くのクラウド プロバイダーは、サービスと対話するための PowerShell モジュールを提供しています。