\r\n\r\n
Powershellは、コマンドラインツールとスクリプト言語に相当する部分です。コンピュータを管理するのと同じコマンドで、コンピュータを自動化することができます。Powershellの用途はWindows中心ですが、MacやLinuxマシンにもインストールすることができます。
Powershellには2つの使い方があります。1つは、コマンドを実行したり、あらかじめ書かれたスクリプトを呼び出したりするための基本的なコマンドラインウィンドウです。そして、CLIウィンドウと基本的な開発環境を組み合わせたISEです。それを使って、スクリプトを書いたり、テストしたりすることができます。
ISEは、ファイルを開かずにターミナルウィンドウで使用できるコマンドを検索できるリストを持っています。コマンドリストでは、コマンドの組み立てや**コマンドが可能です。より高度な開発を行う場合は、Microsoft社のVisual Studioのコードをインストールしてください。コードには、Gitバージョンコントロールや他の言語への対応が含まれています。
Powershellの特徴は、Microsoftがcmdletと呼ぶコマンドだけで構築されていることで、コマンドラインを使う場合も、複雑なスクリプトを書く場合も、コマンドは同じである。ですから、これらのコマンドを使うときは、それらをどのようにつなげて最初のスクリプトを作るかを考えるとよいでしょう。
Powershellのコマンドはすべて動詞-名詞の形をとる。動詞は通常、Get、Set、Newの3つである。
Getコマンドを実行すると、利用可能なすべてのコマンドを見ることができ、これらで始まる多数のコマンドが表示されます。
コマンドレットの名前を掘り下げると、どれも似たような構造になっていることがわかります。Getコマンドと同じように、名前で呼び出すことができます。パラメータを使用すると、得られる情報が変化します。しかし、今までデフォルトのオプションでコマンドを使ったことがある人は、どうやって高度なパラメータの使い方を知ることができるのでしょうか?
コマンドレットに関する詳細な情報を表示するには、Getコマンドと一緒にGet-Helpコマンドレットを使用します。次のような構文のコマンドレットを使用します。
Get-Help Get-Commandその後、パラメータに関する基本的な情報が表示されます。パラメータの詳細やいくつかの使用例を見るには、-Fullパラメータを追加してください。
例を見るだけなら、走ってもいい。
Get-Help Get-Command -Examplesこのコマンドレットは、ヘルプファイルに記載されている例のみを返します。これらの例は、説明を含んでいるので参考になります。このヘルプテキストは、コマンドレットとパラメーターが実行時に何を行うかを説明します。
ヘルプファイルを別ウィンドウにポップアップするには、-ShowWindow.を使用します。
Get-Help Get-Command -ShowWindowPowershellは、ヘルプファイルの全文を表示するウィンドウを表示します。ウィンドウが記事全体を取得するため、ここでFullパラメータを使用する必要はありません。
Powershellが高度になると、get Memberを使うことが多くなります。これは、返されたデータからどのフィールドが利用可能で、他にどのようなメソッドが実行できるかを簡単に確認できる方法です。多くの場合、コマンドレットには -Property パラメータがあり、それを使って呼び出すことができます。
コマンドレットの動作とヘルプの入手方法がわかったところで、いくつかの変更を行ってみましょう。get ChildItemコマンドを使えば、任意のフォルダの内容を取得することができます。例えば、ドライブ番号を使って、ファイルのあるドライブ全体を取得することができます。入る。
Get-ChildItem E:\略称は
Get-ChildItem -Path E:\このコマンドを実行すると、length属性の下に、最終書き込み時刻、サイズ、名前、モードのファイルのリストが表示されます。モードは、ファイルまたはフォルダのプロパティです。想定されるエントリーは以下の通りです。
パス内のすべてのサブディレクトリの内容を取得したい場合は、-Recurseパラメータを使用する必要があります。 その後、実行します。
Get-ChildItem -Path E:\ -Recurseファイルは、パス内の各フォルダーごとに個別のリストとして表示されます。
返されるデータを制限するために、いくつかの異なるパラメータを使用することができます:-File、-Hidden、-ReadOnly。 ファイル名をフィルタリングするには、Pathパラメータでワイルドカードを使用します。あるディレクトリにあるすべての.docファイルを返すには、次のように入力します。
Get-ChildItem -Path E:\*.doc追加 - 再び - あなたが同様にそれらのすべてからサブフォルダをしたい場合は、再帰的に。
ドキュメントを削除する場合は
Remove-Item -Path E:\OldFile.txt各ファイルの確認を省略するには、パラメータ -Confirm$false を追加します(Powershell には、$true と $false という 2 つのブーリアン定数があります)。読み取り専用ファイルや隠しファイルを強制的に削除するには、-forceパラメータを使用します。
ファイルの移動も同様に簡単です。フラッシュドライブからフォルダー内のローカルドライブにすべてのコンテンツを移動するには、以下を使用します。
Move-Item -Path E:\* -Destination C:\FlashDriveArchiveまた、パス内の1つのファイルに名前を付けて、そのファイルだけを移動させることもできます。ファイルを移動するのではなく、コピーする場合は、copy-Itemコマンドレットと同じ構文を使用します。
Windowsユーザーなら誰でも知っている「タスクマネージャー」。しかし、Powershellから現在実行中のプロセスを確認するには、Get Processというもっと早い方法があります。このテーブルのすべてのエントリの意味を知りたい場合は、pipeコマンドを使ってメンバーを取得します。cmdletを入力します。
Get-Process | Get-MemberGet メンバは、Get 処理に関連するメソッドとプロパティのリストを出力する。上記の情報は、あなたにとって興味深いものです。様々な種類のメモリの別名があることがお分かりいただけると思います。
また、この出力から、Product属性を取得することで、より親しみやすい名前の処理を行うことができることがわかります。私たちが利用するために、より良い情報を持つように出力を変更してみましょう。
Get-Process | Select-Object Product, NPM, CPU, Name, ID | Sort-Object CPU -Descending(次のセクションでは、「オブジェクトの選択」と「オブジェクトの並べ替え」について詳しく説明します)。
Get ProcessコマンドでIDを取得できたので、stop-Processコマンドレットを使用して停止します。そこで、Chromeのプロセスにリソースを取られていると感じたら、先ほどのコマンドでIDを調べます。 そして、実行します。
Stop-Process -ID 4596049560を資源占有者のIDに置き換えてください。
ファイルパスを利用して、Powershellで処理を開始することができます。Chromeを起動するには、以下のコマンドを実行します。
Start-Process -Filepath "C:\Program Files (x86) GoogleChromeApplicationchrome.exe"(ファイルパスにはスペースがあるため、引用符が必要です)。ArgumentListパラメータを使用すると、アプリケーションにコマンドラインオプションを渡すことができます。Chromeの場合、--Incognitoフラグで強制的に匿名モードで起動させることができます。コマンドレット全体は
Start-Process -Filepath "C:\Program Files (x86) GoogleChromeApplicationchrome.exe" -ArgumentList "--incognito"サービスでもほとんど同じことができます。"サービスを取得 "は、コンピューター上で実行されているすべてのサービスのリストを表示します。サービスの開始と停止と同じように、サービスの開始と停止を使用できます。
コマンドレットでデータを扱う場合、必ずしも思い通りの順番になるとは限りません。このような場合、Sortオブジェクトを使用する必要があります。作成した変数に対してSortオブジェクトを呼び出すことができますが、主に別のコマンドレットパイプラインで使用されます。上の例では、あるオブジェクトの出力を別のオブジェクトに渡し、パイプラインでソートしています。3つの乱数からなる配列を作成し、パイプラインでオブジェクトをソートしてみましょう。
括弧内のものは最初に実行されます。 の単純な配列を作成します。
$(Get-Random), $(Get-Random), $(Get-Random)これらの値はカンマで区切られているので、乱数ソートの実行を確認するために注意してください。
$(Get-Random), $(Get-Random), $(Get-Random) | Sort-Objectこのコマンドを逆に実行するには、コマンドレットは最小値から最大値まで出力し、降順で加算します。
パイプラインコマンドレットでメンバーを取得する際に、デフォルトの出力よりも多くのプロパティを持つ「select object」を使用して、特定の特性を選択することができます。
オブジェクトのソートと同様に、パイプラインコマンドレットを使用してオブジェクトの選択を行うことができます。
Get-Service | Select-Object DisplayName, Statusこのようにすべてのデータを出力するのはいいのですが、特定のデータだけを見たい場合はどうしたらいいでしょうか。Get ChildItemにはフィルタリング機能が組み込まれていますが、ほとんどのコマンドはそうではありません。このような場合は、Whereオブジェクトを使用します。
再度サービスに戻り、今度は実行中のサービスのみを取得します。cmdletを入力します。
Get-Service | Where-Object Status -eq "Running"比較の-eqはPowershellの=です。 Powershellでは、以下の文字の組み合わせで比較を行うことができます。
これらの異なるコマンドレットでは、ほとんどの出力が表形式になります。これにより、データが見出し付きの行と列で表示されます。リストされたエントリーとその属性を個別に表示するには、パイプを介したリスト形式にコマンドレットを設定します。
出力が広すぎてPowershellのウィンドウに収まらないことがあります。このような場合、Powershellは強制的にリスト出力にします。表形式のままであることを保証するために、パイプで表形式に出力してください。
慣れてしまえば、スクリプトの作成は、テキストファイルにコマンドレットを入力して保存するだけでよい。スクリプトを書くのが不安な方もご安心ください。 マイクロソフトでは、各コマンドレットについて豊富なドキュメントを用意しています。これは、すでに長いヘルプドキュメントを超えているので、Technet [no longer available]を必ず確認してください。
Powershellを学習中の方は、一番やってみたいことをコメントで教えてください。経験者の方は、より高度なテーマを取り上げてほしいというご要望もお聞かせください。