基本コマンドHyper-VPowerShell



Basic Command Hyper V Powershell



基本コマンドHyper-VPowerShell

Hyper-V環境の管理は、困難な作業になる可能性があります。したがって、中央コンソールから仮想インフラストラクチャを構成および制御できる強力な管理ツールが必要です。高度なGUIツール(Hyper-Vマネージャー、サーバーマネージャー、またはSystem Center仮想マシンマネージャー)を使用できますが、PowerShellを使用しない場合でも、エクスペリエンスを十分に楽しんだり、Hyper-Vハイパーバイザーを探索したりすることはできません。機能 。上記のツールとは異なり、PowerShellを使用すると、すべてのコアタスクを自動化できるため、効率と柔軟性が向上します。



今日のブログ投稿では、仮想マシン(VM)のパフォーマンスを向上させるPowerShellおよびHyper-V PowerShellコマンドの原理と、このCLIツールがHyper-V管理プロセスを大幅に簡素化する方法について説明しています。これは、すべてのITマネージャーがHyper-VPowerShellコマンドリストを知っている必要があることです。

Get-Command



助けを得ます

Get-VM

Start-VM



ストップVM

チェックポイント-VM

テスト-VHD

メジャー-VM

Get-VMNetworkAdapter

更新-VMVersion

Get-Process

Where-Object

PowerShellとは何ですか?

PowerShellは、Microsoftによって開発されたタスクの自動化および構成管理フレームワークであり、ラインシェルおよび関連するスクリプト言語の.NETFrameworkおよび.NETCoreベースのコマンドが含まれます。このツールはシステム管理者向けに設計されており、インタラクティブなプロンプトと、単独または組み合わせて使用​​できるスクリプト環境が含まれています。

複数のコマンドレット、PowerShell PowerShell単一コマンドスクリプト(コマンドレットとも呼ばれます)を配置することにより、さまざまなタスクを自動的に実行するために使用できます。 Microsoftは、100を超えるコアPowerShellコマンドを開発して、基本的なタスクまたは複雑なタスクを実行できます。

ただし、PowerShellはオープンソースツールです。つまり、サードパーティの開発者は新しいコマンドレットを追加できます。したがって、誰でもGitHubでPowerShellコマンドを共有して、MicrosoftPowerShellコードベースに貢献できます。

PowerShell何ができるか?

初心者および経験の浅いHyper-Vユーザーは、通常、GUIツールを実行することを好みます。これは、グラフィカルインターフェイスを使用して機能や設定を簡単に見つけ、問題を見つけることができるためです。ただし、GUIツールでは自動化が有効になっていません。つまり、すべてのVMに変更を適用する場合は、各Hyper-VVMをそれぞれ構成する必要があります。たとえば、新しいVMを作成した後、デフォルト設定の一部を手動で更新する必要があります。

Hyper-V PowerShellは、管理者が管理オペレーティングシステム(Linux、macOS、およびWindows)と、プロセスに関連するタスクをすばやく自動化するのに役立ちます。さまざまなツールを備えたGUIであるPowerShellを使用すると、コマンドラインのみを使用してシステム全体を管理できます。

さらに、必要なHyper-V PowerShellコマンドをテキストファイル(拡張子.ps1)に保存してから、スクリプトを実行して特定のタスクを実行できます。さらに、タスクスケジューラを使用して、PowerShellスクリプトを特定の時間に開始するようにスケジュールできます。

PowerShellを開く方法

PowerShell GUIベースのオペレーティングシステムを開くには、[スタート]をクリックし、検索バーPowerShellを入力する必要があります。 PowerShellアイコンを右クリックし、[管理者として実行]モードを選択して、開いているPowerShellを拡張します。

Windows ServerCoreまたはHyper-VServerを実行している場合は、PowerShellコマンドプロンプトを入力して、Enterキーを押す必要があります。 WindowsPowerShellセッションの「コマンドプロンプト」ウィンドウが自動的に開始された後。次に、コマンドプロンプトにPSプレフィックスを追加して、WindowsPowerShellセッションを開始したことを示します。

最高のHyper-VPowerShellコマンド

PowerShellとは何か、およびPowerShellがどのように機能するかを理解したら、Hyper-VPowerShellコマンドを使用してそれらを活用する方法を学習します。多くの効果的なHyper-VPowerShellコマンドがあり、Hyper-Vの管理プロセスを簡素化します。

ここで、仮想インフラストラクチャのHyper-VPowerShellコマンドで開くことができる可能性について理解しましょう。

Get-Command

このHyper-VPowerShellコマンドは、PowerShellコマンドレットに精通しておらず、何を使用するのか、ユーザーがどのように使用するのが特に役立つのかがわかりません。 Get-Commandコマンドレットを実行して完全なリストを表示するには、コンピューターで表示して、使用可能なすべてのコマンドレット、関数、およびエイリアスをインストールできます。

ただし、検索を絞り込んで特定の条件を満たすHyper-V PowerShellコマンドリストを取得する場合は、Get-Command * -VMコマンドレットを使用できます。Findを使用すると、コマンドのVMリストを制御および構成できます。 VMパラメーターがVHDを変更することにより、仮想ハードディスクの管理に使用されるコマンドレットの完全なリストを取得できます。したがって、さまざまな検索パラメータを試して、目的の結果を得ることができます。

助けを得ます

Hyper-V PowerShellコマンドを使用する場合は、コマンドレットの詳細を確認できます。これを行うには、Get-Helpコマンドレットを使用します。たとえば、Get-VMコマンドレットの詳細を確認するには、次のように入力します。

Get-Help Get-VM

Get-VM

Hyper-V PowerShellコマンドを使用すると、Hyper-VVMホストで使用可能な1つ以上のすべてを表示できます。 Hyper-Vホスト上のすべてのローカルVMを表示するには、Get-VMコマンドレットを実行します。

画面上のPowerShellには、名前、ステータス、CPU使用率、メモリ割り当て、稼働時間、ステータス、バージョンなど、使用可能なVMのリストが表示されます。

Start-VM

この特定のコマンドレットは、選択したVMを起動するのに役立ちます。これを行うには、次のHyper-VPowerShellコマンドを実行します。

Start-VM -Name'Windows Server 2016 '

したがって、ローカルHyper-VホストでWindows Server2016という名前のVMを起動する必要があります。 Get-VMコマンドレットを実行して、VMが実際に起動したかどうかを確認しましょう。

さらに、Start-VMコマンドレットの変更バージョンを使用できます。これは、VM名がHyper-Vで始まる場合にVMを起動できるバージョンのみです。

Start-VM -Name Hyper-V *

ご覧のとおり、Hyper-Vサーバーデスクトップと呼ばれるVMが正常に起動しました。ただし、別のVM(Hyper-V Server 2012)が既に実行されている場合、PowerShellはこの事実を通知します。

ストップVM

Stop-VMコマンドレットを使用すると、選択したVMをオフまたはオフにすることができます。これを行うには、次のコマンドレットを実行できます。

Stop-VM -Name'Windows Server 2016 '

ご覧のとおり、選択したVMはクライアントOSによって正常に閉じられています。

別の例として、次で始まるHyper-VVM名をオフにすることができます。

Stop-VM -Name Hyper-V * –TurnOff

VMが応答しない場合は、VMを強制的に閉じることができます。これを行うには、次のPowerShellコマンドレットを実行します。

Stop-VM -Name'Windows Server 2016 '–Force

物理マシンのプルアップ電源と同様の強制シャットダウンは、保存されていないアプリケーションデータが失われる可能性があることに注意してください。この場合、潜在的なデータ損失を回避するために、仮想マシンを保存することをお勧めします。これを行うには、Save-VMコマンドレットを実行する必要があります。これは、物理コンピューターをスリープ状態にするのと同じです。

Save-VM -Name'Windows Server 2016 '

名前をVMHyper-Vの先頭に保存することを選択した場合は、次のHyper-VPowerShellコマンドを実行します。

Get-VM -Name Hyper-V * |保存-VM

チェックポイント-VM

Hyper-V PowerShellコマンドのCheckpoint-VMコマンドレットの管理には、別の仮想環境が不可欠です。 Checkpoint-VMコマンドレットは、選択したHyper-V VMのスナップショット(Hyper-Vスナップショットとも呼ばれます)を作成するのに役立ちます。次のコマンドレットを実行して、Update1と呼ばれる特定のVM(Windows Server 2016)チェックポイントを作成します。

Checkpoint-VM -Name'Windows Server 2016 '-SnapshotName Update1

VMが正常に作成されたことを確認するには、次のHyper-VPowerShellコマンドを使用します。

Get-VMSnapshot -VMName'Windows Server 2016 '

一方、Hyper-Vのスナップショットをいくつか削除する場合は、Remove-VMSnapshotコマンドレットを使用できます。たとえば、すべてのVMスナップショットの先頭にある「Testing」という名前を削除する場合は、次のコマンドレットを実行する必要があります。

Get-VM'Hyper-Vサーバー2012 '|削除-VMSnapshot-名前テスト*

上のスクリーンショットは、プロセス全体の選択したHyper-Vスナップショットを削除する方法を示しています。

テスト-VHD

このHyper-VPowerShellコマンドは、仮想ハードディスクファイルが存在することを確認するために使用され、Hyper-Vの展開に使用できます。次のようなコマンドレット:

Test-VHD -Path C: Testing.vhd

VHDパスが有効な場合、画面に次の出力が表示されます。

メジャー-VM

このHyper-VPowerShellコマンドを使用すると、特定のVMのリソース使用率データを収集できます。たとえば、次のコマンドレットを実行して、VM Windows Server 2016のCPU使用率、RAM使用率、ディスク容量、およびネットワークトラフィックの名前を確認します。

Measure-VM -VMName'Windows Server 2016 '

選択したVMでのみリソースを計測する場合は、データをレポートするためにMeasure-VMコマンドレットが必要であることに注意してください。リソースメータリングを有効にするには、次のHyper-VPowerShellコマンドを使用してください。

Enable-VMResourceMetering -VMName'Windows Server 2016 '

Get-VMNetworkAdapter

もう1つの便利なPowerShellコマンドレットはGet-VMNetworkAdapterで、選択したVM仮想ネットワークアダプターを識別できます。たとえば、すべての仮想マシンと管理オペレーティングシステムで仮想ネットワークアダプターを検出する場合は、次のHyper-VPowerShellコマンドを実行する必要があります。

Get-VMNetworkAdapter –すべて

すべてが正しければ、PowerShell画面に次のメッセージが表示されます。

Hyper-V PowerShellコマンドを使用すると、Hyper-Vネットワークアダプターを使用して、さまざまな単純なタスクと複雑なタスクを実行できます。ブログ投稿の1つを表示して、Hyper-V環境で仮想ネットワークアダプターを管理および構成するのに役立つコマンドレットを確認してください。

更新-VMVersion

PowerShellにはコマンドレットがあり、選択したVMを使用してバージョンを更新できます。

Update-VMVersion -Name'TestVM '

Hyper-V PowerShellコマンドを実行した後、VMの現在のバージョンに更新されたVMのTestVMを呼び出すことができます。

Get-Process

このHyper-VPowerShellコマンドは、ローカルコンピューター上の現在のすべてのプロセスを表示するのに役立ちます。 Get-Processコマンドレットを実行すると、画面に次のメッセージが表示されます。

このテーブルには、プロセスが使用している非ページングメモリの量を処理するために開かれた進行状況に関する情報が含まれています。プロセスが使用しているページング可能メモリの量プロセスのワーキングセットのサイズは、仮想メモリの使用量です。プロセスIDプロセス名のすべてのプロセッサプロセッサ時間に割り当てられています。

検索を絞り込んで特定のプロセスを見つけるには、プロセスで名前またはIDを入力する必要があります。たとえば、Microsoft Wordの現在の作業方法を知りたい場合は、実行中のすべてのプロセスのリストを参照して、のMicrosoft Word(つまり、WinWord)に関する情報(プロセスIDを含む)を含む行を見つける必要があります。プロセスIDを使用すると、次のコマンドレットを実行して必要なデータを取得できます。

Get-Process -ID 8892

さらに、WinWordの現在のプロセスに関するデータは、別の形式、つまり属性のリストを使用できます。このコマンドレットを実行すると、より詳細な出力が得られます。

Get-Process WINWORD |フォーマットリスト*

フローデータを使用して、次のコマンドレットを実行できます。

Stop-Process。1つ以上の実行中のプロセスを停止できます。

Wait-Process。1つ以上のプロセスの実行が停止するのを待ってから、他の入力を有効にすることができます。

Start-Process。ローカルコンピューターで1つ以上のプロセスを開始できます。

Debug-Process。これにより、実行中の1つ以上のローカルコンピューター上のプロセスにデバッガーをアタッチできます。

たとえば、PowerShellでメモ帳アプリケーションを起動する場合は、次のコマンドレットを実行する必要があります。

Start-Process -FilePath'notepad.exe '

もう1つの例は、「通常」モードでPowerShellを開いた場合ですが、モードを拡張するには、PowerShellを実行してアクセス権を管理する必要があります。この場合、次のHyper-VPowerShellコマンドを実行します。

Start-Process -FilePath'powershell '-Verb RunAs

一方、実行中のプロセスの1つが応答を停止した場合は、Stop-Processコマンドレットを実行して、失敗のアプリケーションを一時停止できます。

Stop-Process -Name'notepad '

この場合、ローカルマシン上のメモ帳アプリケーションのすべてのインスタンスが停止します。

メモ帳の各インスタンスには、独自のプロセスIDがあります。メモ帳の特定のインスタンスを停止するには、Stop-ProcessコマンドレットのIDパラメーターを使用する必要があります。これを行うには、最初にGet-Processコマンドレットを実行し、停止するために必要なアクティブなプロセスを見つけて、プロセスIDを識別する必要があります。

たとえば、このプロセスIDを処理し、プロセスを停止する特定のメモを特定することで、次のHyper-VPowerShellコマンドを実行できます。

停止プロセス-ID5052

したがって、選択したメモ帳のみがプロセスを停止する必要があります。

Where-Object

このHyper-VPowerShellコマンドを使用すると、パイプオブジェクトをフィルター処理して、必要な正確なデータを見つけることができます。この場合、パイプラインに沿って渡すことができるオブジェクトを指定するPowerShellスクリプトを作成する必要があります。さまざまな検索条件を使用して、ローカルコンピューター上の任意のオブジェクトを見つけることができます。

たとえば、プロセスの実行が停止したことを確認する場合は、次のコマンドレットを使用します。

Get-Service | Where-Object {$ _。Status-eq'Stopped '}

特定のコマンドレットを探している場合は、Where-Objectコマンドレットの別の例を使用してください。次のHyper-VPowerShellコマンドは、開始を待機するすべてのコマンドレットを見つけるのに役立ちます。

Get-Command | Where-Object {$ _。Name-like '* wait *'}

Where-Objectコマンドレットでは、名前に基づいて特定のプロセスを見つけるのに役立つだけです。次のコマンドを実行すると、すべてのプロセスがsysで始まる名前のリストを取得できます。

Get-Process | Where-Object {$ _。ProcessName-Match '^ sys。*'}

ご覧のとおり、これらのコマンドレットを実行できるタスクの数を使用すると、Hyper-VPowerShellコマンドにもっと注意を払う必要があります。 PowerShellコマンドレットを使用すると、複数のVMを使用してさまざまなタスクを実行し、Hyper-V機能を利用できます。 PowerShellは一見気が遠くなるように見えるかもしれませんが、PowerShellの使用方法を学ぶと、Hyper-VPowerShellコマンドを使用してその長所を活かす方法をすぐに見つけることができます。