Windows管理スキルを向上させるPowershellコマンドレット

Windows管理スキルを向上させるPowershellコマンドレット

Powershellは、新しいコーダーがWindowsで開始するのに最適な方法です。 Powershellは、同等の部分のコマンドラインツールとスクリプト言語です。それはあなたにあなたのコンピュータを自動化する能力を与えます あなたがそれを管理するために使用するのと同じコマンドを介して 。最新のWindowsシステムを使用している場合は、既にPowershellを使用しています。その用途のほとんどはWindows中心ですが、PowershellをMacまたはLinuxマシンにインストールすることもできます。





Powershellの操作

Powershellを使用するには2つの方法があります。コマンドを実行したり、事前に作成されたスクリプトを呼び出したりするために使用される基本的なコマンドラインウィンドウがあります。次に、CLIウィンドウと基本的な開発環境を組み合わせたISEがあります。これを使用して、スクリプトを記述してテストできます。





ISEには検索可能なコマンドのリストがあり、ファイルを開かなくてもターミナルウィンドウを使用できます。コマンドリストを使用すると、コマンドを作成して挿入できます。より高度な開発を行っている場合は、MicrosoftのVisual StudioCodeをインストールしてください。コードには、Gitバージョン管理およびその他の言語のサポートが含まれています。





Powershellは、完全にコマンドで構築されているという点で独特であり、Microsoftはそれらをコマンドレットと呼んでいます。これらのコマンドは、コマンドラインを介して作業している場合や複雑なスクリプトを記述している場合でも同じです。したがって、これらのコマンドを使用するときに、最初のスクリプトを作成するためにそれらをつなぎ合わせる方法を考えることができます。

基本:Get-Command、Get-Help、Get-Member

すべてのPowershellコマンドは、動詞-名詞の形式を取ります。動詞は通常次のとおりです。 取得、設定、および新規



Get-Command 使用可能なすべてのコマンドを表示できます。 Get-Commandを実行すると、これらで始まるコマンドがたくさんあることがわかります。

コマンドレットの名前だけからさらに掘り下げてみると、それらがすべて同様の構造を持っていることがわかります。 Get-Commandの場合と同じように、名前で呼び出します。パラメータを使用すると、取得する情報が変わります。ただし、デフォルトオプションでコマンドを使用したことがある場合、高度なパラメータの使用方法をどのように確認しますか?





を使用して 助けを得ます Get-Commandを指定したコマンドレットには、コマンドレットに関する詳細情報が表示されます。次の構文でコマンドレットを使用します。

Get-Help Get-Command

次に、パラメータに関する基本情報が表示されます。パラメーターの詳細といくつかの使用例を確認したい場合は、-Fullパラメーターを追加してください。





例のみを表示したい場合は、以下を実行できます。

Get-Help Get-Command -Examples

このコマンドレットは、ヘルプファイルから例のみを返します。これらの例には説明が含まれているため、非常に役立ちます。このヘルプテキストは、コマンドレットとパラメーターが実行時に何をするかを説明しています。

ヘルプファイルを別のウィンドウにポップアウトする場合は、次を使用できます。 -ShowWindow 。したがって、実行する場合:

Get-Help Get-Command -ShowWindow

Powershellは、完全なヘルプファイルを含むウィンドウを表示します。ウィンドウが記事全体をプルするため、ここでFullパラメーターを使用する必要はありません。

Powershellをさらに高度に使用すると、Get-Memberをより頻繁に使用するようになります。これは、返されたデータから使用できるフィールドや、実行できる他のメソッドを確認する簡単な方法です。多くの場合、コマンドレットには -財産 それらを呼び出すことができるパラメータ。

ファイルの操作:Get-ChildItem、Remove-Item、Move-Item、Copy-Item

コマンドレットがどのように機能するか、およびヘルプを取得する方法についてある程度理解できたので、変更を加えましょう。を使用して任意のフォルダの内容を取得できます Get-ChildItem 指図。たとえば、ドライブ文字を使用してドライブ全体のファイルを取得できます。入力:

Get-ChildItem E:

これは次の略です。

Get-ChildItem -Path E:

このコマンドを実行すると、[長さ]プロパティの下に、最終書き込み時間、サイズ、名前、およびモードを含むファイルのリストが表示されます。モードは、ファイルまたはフォルダーの属性です。可能なエントリは次のとおりです。

  • 読み取り専用
  • 隠れた
  • システム
  • ディレクトリ
  • アーカイブ
  • 端末
  • 普通
  • 一時的
  • スパースファイル
  • ReparsePoint
  • 圧縮
  • オフライン
  • NotContentIndexed
  • 暗号化

パス内のすべてのサブディレクトリの内容を取得する場合は、 -再帰 パラメータ。したがって、実行します。

Get-ChildItem -Path E: -Recurse

ファイルは、パス内のフォルダーごとに個別のリストとして出力されます。

返されるデータを制限するには、いくつかの異なるパラメーターを使用できます。 -ファイル-隠れた 、 と -読み取り専用 。ファイルの名前を除外する場合は、Pathパラメーターでワイルドカードを使用できます。ディレクトリ内のすべての.docファイルを返すには、次のように入力します。

Get-ChildItem -Path E:*.doc

もう一度追加 -再帰 サブフォルダからもすべてが必要な場合。

ファイルを削除したい場合は、以下を使用してください。

Remove-Item -Path E:OldFile.txt

各ファイルの確認をスキップするには、パラメータを追加します -$ falseを確認します (Powershellには、ブール値の2つの定数$ trueと$ falseがあります)。読み取り専用ファイルまたは隠しファイルを強制的に削除するには、 -力 パラメータ。

ファイルの移動も同様に簡単です。フラッシュドライブからフォルダ内のローカルドライブにすべてを移動するには、次のコマンドを使用します。

Move-Item -Path E:* -Destination C:FlashDriveArchive

-Pathで1つのファイルに名前を付けて、そのファイルのみを移動することもできます。ファイルを移動するのではなくコピーするには、同じ構文を使用します。 コピーアイテム コマンドレット。

プロセスとサービスの監視と操作

毎日 Windowsユーザーはタスクマネージャーを知っています 。ただし、Powershellから現在実行中のプロセスを確認するためのより迅速な方法があります。 Get-Process 。このテーブルのすべてのエントリの意味を知りたい場合は、コマンドをにパイプします。 Get-Member 。コマンドレットを入力します。

Get-Process | Get-Member

Get-memberは、Get-Processに関連付けられているメソッドとプロパティのリストを出力します。上部の情報はあなたが興味を持っているものです。さまざまなタイプのメモリにエイリアスがあることがわかります。

この出力から、次の値を取得できることもわかります。 製品 プロセスにわかりやすい名前を付けるためのプロパティ。出力を変更して、作業するためのより良い情報が得られるようにします。

Windows10用のWindowsXPテーマ
Get-Process | Select-Object Product, NPM, CPU, Name, ID | Sort-Object CPU -Descending

(次のセクションで、Select-ObjectとSort-Objectの詳細を説明します。)

Get-ProcessコマンドからIDを取得したので、Stop-Processコマンドレットを使用してIDを停止できます。したがって、Chromeプロセスがすべてのリソースをかみ砕いていることがわかった場合は、前のコマンドでIDを見つけてください。次に、以下を実行します。

Stop-Process -ID 45960

交換 49560 リソースを大量に消費するIDを使用します。

ファイルパスを使用すると、Powershellを使用してプロセスを開始できます。 Chromeを起動するには、次のコマンドを実行します。

Start-Process -Filepath 'C:Program Files (x86) GoogleChromeApplicationchrome.exe'

(スペースがあるため、ファイルパスを引用符で囲む必要があります。) -ArgumentList パラメータを使用すると、コマンドラインオプションをアプリケーションに渡すことができます。 Chromeの場合、を使用してシークレットモードで強制的に起動できます。 -シークレット 国旗。コマンドレット全体は次のとおりです。

Start-Process -Filepath 'C:Program Files (x86) GoogleChromeApplicationchrome.exe' -ArgumentList '--incognito'

これらの同じことのほとんどをサービスで行うことができます。 Get-Service コンピュータで実行されているすべてのサービスのリストが表示されます。サービスの開始と停止と同じように、次を使用できます スタートサービスストップサービス

データの操作:Sort-Object、Select-Object、Where-Object

コマンドレットからのデータを操作しているとき、それは必ずしもあなたが望む順序であるとは限りません。そのような場合は、 ソートオブジェクト 。作成した変数でSort-Objectを呼び出すことができますが、主に別のコマンドレットをパイプ処理することで使用されます。上記の例のように、あるオブジェクトの出力を別のオブジェクトにパイプして並べ替えます。 3つの乱数の配列を作成し、それをSort-Objectにパイプしてみましょう。

括弧内のすべてが最初に実行されます。次のコマンドで単純な配列を作成します。

$(Get-Random), $(Get-Random), $(Get-Random)

値を区切るコンマに注意してください。したがって、ソートされた乱数を確認するには、次のようにします。

$(Get-Random), $(Get-Random), $(Get-Random) | Sort-Object

コマンドレットは、数値を最小から最大に出力します。逆にしたい場合は、 -降順

コマンドレットをGet-Memberにパイプすると、デフォルトの出力よりも多くのプロパティがあります。を使用して特定のプロパティを選択します Select-Object

Sort-Objectと同様に、パイプコマンドレットを介してSelect-Objectを使用します。たとえば、サービスとそのステータスのテーブルを生成するには、次のようにします。

Get-Service | Select-Object DisplayName, Status

このすべてのデータを出力するのは良いことですが、特定のデータだけを見たい場合はどうでしょうか。 Get-ChildItemにはいくつかの組み込みフィルタリングがありますが、ほとんどのコマンドにはありません。そのような場合は、 Where-Object

再びサービスに戻ると、今回は実行中のサービスのみを取得します。コマンドレットを入力します。

Get-Service | Where-Object Status -eq 'Running'

それか -eq 比較では、Powershellは = 。 Powershellでは、文字の組み合わせを使用して比較を実行します。

  • eq:等しい
  • ne:等しくない
  • lt:未満
  • gt:より大きい
  • ge:以上
  • le:以下
  • like:ワイルドカード比較でlikeを使用

書式設定ヘルプ:Format-TableおよびFormat-List。

これらのさまざまなコマンドレットの場合、出力のほとんどはテーブル形式でした。これにより、ヘッダー付きの行と列にデータが表示されます。プロパティとともにリストされたエントリを個別に表示するには、コマンドレットをにパイプします。 フォーマットリスト

Powershellウィンドウに対して出力が広すぎる場合があります。それが発生すると、Powershellはそれをリスト出力に強制します。テーブル形式で保持することを確認するには、出力をにパイプします フォーマット-テーブル

コマンドラインからスクリプティングへ:次のステップ

慣れたら、スクリプトはテキストファイルにコマンドレットを入力して保存するだけです。スクリプトを試すことに神経質になっている場合は、そうしないでください。 Microsoftには、すべてのコマンドレットに関する膨大な量のドキュメントがあります。これは、すでに長いヘルプドキュメントを超えているため、Technet [No LongerAvailable]を確認してください。

Powershellを学習している場合は、コメントで最も興奮していることをお知らせください。あなたがもう少し経験を積んでいるなら、私たちはあなたがカバーしてもらいたいより高度なトピックについて聞いてみたいです。

共有 共有 つぶやき Eメール これらのWindowsファイルとフォルダを削除して、ディスク領域を解放します

Windowsコンピュータのディスク領域をクリアする必要がありますか?ディスクスペースを解放するために安全に削除できるWindowsファイルとフォルダは次のとおりです。

次を読む
関連トピック
  • ウィンドウズ
  • プログラミング
  • パワーシェル
  • スクリプティング
著者について マイケル・マコーネル(44件の記事が公開されました)

Michaelは運命のときにMacを使用しませんでしたが、Applescriptでコーディングすることはできます。彼はコンピュータサイエンスと英語の学位を持っています。彼はしばらくの間、Mac、iOS、およびビデオゲームについて書いています。彼は10年以上、スクリプトと仮想化を専門とする日中のITモンキーです。

マイケル・マコーネルのその他の作品

ニュースレターを購読する

ニュースレターに参加して、技術的なヒント、レビュー、無料の電子書籍、限定セールを入手してください。

購読するにはここをクリックしてください