Adam The Automator

PowerCLI by VMWareは、ESXiサポートされているハードウェアのハイパーバイザー仮想化管理者のためのユビキタスインターフェー PowerShellとPowerCLIを使用してVMwareを管理する方法を学ぶことは、ツールキットに強力に追加されます。 このPowerCLIチュートリアルでは、それを行う方法を学びます。

このチュートリアルでは、次のことを学習します。

:

  • PowerCLIを使用してVMwareインフラストラクチャに接続するための基本
  • VMwareオブジェクトを操作するためのコマンドレットに慣れる
  • 探索する知識

    目次

    あなたが持っていると知っておく必要があるもの

    このPowerCLIチュートリアルであまりにも遠くに取得する前に、 この記事では、私はそれを仮定するつもりです:あなたは基本的なPowerShellの経験を持っています。 PowerShellの専門家である必要はありませんが、PowerShellに精通していることがあれば、うまく機能します。

  • に接続してテストするためのVMware ESXiホストまたはvCenter applianceがあります
  • Windows(またはMac/Linux)ワークステーションで作業しています
  • PowerCLIが既にインストールされていて、接続されています。 そうでない場合は、このPowerCLIインストールの記事をチェックしてください。 私はPowerCLI v11.4.0を使用します。 私はWindows PowerShell5を使用してWindows10ワークステーションから作業します。1、しかし、あなたはこのチュートリアルのための機能パリティがあるので、代わりにPowerShell6を使用することを歓迎しています。PowerCLIを使用してESXiホストに関する情報を収集する

    vSphere環境の仮想レイヤーに入る前に、物理ハードウェアレイヤーを確認することをお勧めします。 VMware PowerCLIは、この目的のためにGet-VMHostという詳細な情報を収集するためのコマンドレットを直接提供しています。vCenter serverまたはESXiホストに接続している間に、次のコマンドレットを実行します。

    p>

    PS51> Get-VMHost
    Get-VMHost
    Get-VMHost

    私はvCenter Server Applianceに接続しているので、私はvCenter Server Applianceに接続しているので、私はvCenter Server Applianceに接続しているので、私はvCenter Server Applianceに接続しているので、私はvCenter Server Applianceに接続しているので、私はvCenter Server Applianceに接続しているので、私はvCenter Server Applianceに接続しているので、私はvCenter Server Applianceに接続しているので、私はvCenter Server Applianceに接続しているので、私はvCenter Server Applianceに接続している。二つの別々のesxiホストを管理している、私は管理されているホストに関するいくつかの基本的な情報を提供しています。 Get-VMHostGet-VMHostはすべての情報を返すわけではありません。

    Get-VMHostFormat-Listにパイプすると、指定されたホストに関するすべての情報のコンソール出力が得られます。 P>

    Get-VMHost/Format-List
    Get-VMHost | Format-List

    または、より選択しやすくすることができます次のように作業しているvmhostオブジェクトの個々のプロパティ:

    PS51> Get-VMHost | format-list -Property State,LicenseKey,Version

    このより冗長な出力を活用すると、仮想化されたワークロードを実行する基礎となるハードウェアのより大きなビューが提供されます。 いくつかの情報は、特に次のようになります。

    • License validation info
    • CPU/Memory totals
    • Hardware vendor model
    • DNS hostname

    レビュー後、これはおそらくExport-CSVコマンドレットを使用してCSVファ

    Powercliを使用したVmの検査

    ここで、仮想ホストを確認することによって、このPowerCLIチュートリアルの別のトピックに飛び込むことは、特定のESXiホスP>

    Get-VMコマンドは、VM情報を確認するために使用できる便利なコマンドです。

    PS51> Get-VMHost -Name <Host FQDN> | Get-VM

    このコマンドレットの出力は次のようになります:P>

    PS51Get-VMHost-NameホストFQDN|Get-VM
    PS51>Get-VMHost-Name|Get-VM

    上記の出力は、特定のホスト上で現在実行中のvmの完全なステータスリストを提供します。 上記で行ったように、個々のホストを指定しないことを選択した場合は、後続の各ホストとそれぞれのVmに関する情報のテーブルが表示されます。

    問題のトラブルシューティングを行い、特定のホスト上の仮想マシンの数を知る必要がある場合、またはVMware PowerCLIを使用してESXiホスト情報を収集する必 あなたの指先で持っているレポート機能が拡大し始めています!

    PowerCLIを使用した仮想スイッチの検査

    vCenterクラスタの仮想ネットワークの構成または管理を担当している人のために、あらゆるユースケースに対 VSphere環境で構成された仮想スイッチを表示する場合は、次のものを使用します。

    PS51> Get-VirtualSwitch

    仮想ネットワークと仮想スイッチの数によっては、結果のリストが非常に大きくなることがあります。 私の場合、以下に示すように、分散仮想スイッチである単一のDSwitchがあります。

    クラスタ内に多数のESXiホストが存在するエンタープライズvSphere実装では、Dswitchは同じ構成の多数のホスト間で仮想スイッチとポートグループの展開を簡 これにより、各ホストで同一のネットワーク構成を手動で作成する手間を省くことができ、クラスターを拡張するのに最適な方法です。

    Get-VirtualSwitch
    Get-VirtualSwitch

    PowerCLIを使用して仮想ネットワークに接続されているVmを見つける

    問題は、どのVMがどのネットワークに接続されているのか疑問に思うかもしれません。 それを理解するには、Get-VirtualPortGroupコマンドを使用できます。 このPowerCLIチュートリアルで、このコマンドレットについて学びましょう。

    ポートグループは基本的に仮想ネットワークです。 すべてのポートグループを表示するには、パラメーターを指定せずにGet-VirtualPortGroupを実行します。 その後、vSphere環境に存在するすべての仮想ポートグループのリストが表示されます。p>

    Get-VirtualPortGroup
    Get-VirtualPortGroup

    そのポートグループ(私の場合はDPortGroup)内のすべてのVmを見つけるには、以下のスクリプトを実行 値DPortGroupを仮想ポートグループの名前に置き換えてください。

    PS51> Get-VM | Where-Object { ($PSItem | Get-NetworkAdapter | where {$_.networkname -match "DPortgroup"})}

    このワンライナーでは、このvCenter applianceに存在するすべての仮想マシンのリストを取得し、Where-Objectコマンドレットを使用してフ

    特定のポートグループのみを持つVmの取得
    特定のポートグループのみを持つVmの取得

    この出力を使

    VMwareの特定のネットワークに接続されているVmを見つけて分析するように求められた場合、この質問に対するPowerCLIレポートソリューションを提供する権限がPowerCLIを使用したVm上のOSバージョン情報の取得VMware内部の管理作業の大部分は、仮想マシンレベルで行われます。 Vm上のすべてのハードドライブサイズのリストを取得したり、すべてのサーバーのゲストOSバージョンを取得したりするなど、無数の要求を受ける可能性が

    これらのタスクは大規模には面倒です。 PowerCLIは、あなたの武器に追加するいくつかの重要なコマンドレットでこれらを合理化することができますので、このPowerCLIチュートリアルでそれらをカバー

    ある時点で、「VMwareクラスタにはいくつのUbuntuサーバーがありますか?”. その後、vCenterをクリックして答えを探すのにあまりにも多くの時間を費やした可能性があります。 PowerCLIは、vCenter内のVMオブジェクトを見て、出力にPowerShellの魔法を適用することで、このプロセスを合理化できます。

    VM情報をまとめる次のスクリプトを見てみましょう。 このスニペットはGet-Viewコマンドを使用しますが、これは少し後で説明しますが、今のところ、VMwareオブジェクトプロパティを取得する高度な方法で この例では、このメソッドで最も簡単に取得できるネストされたプロパティを収集しています。

    PS51> Get-VM | Sort-Object -Property Name | Get-View -Property @("Name", "Config.GuestFullName", "Guest.GuestFullName") | Select-Object -Property Name, @{N="Configured OS";E={$_.Config.GuestFullName}}, @{N="Running OS";E={$_.Guest.GuestFullName}}

    上記のコードは、PowerCLIGet-VMコマンドレットを使用して仮想マシンのリストを取得し、PowerShellSort-Objectコマンドレットを使用してリストをソートし、PowerCLIGet-Viewコマンドレットを使用してオブジェクトプロパティの一部を取得しています。 私の環境でこれを実行すると、以下の結果が得られます。 VCenterでVMの名前、VMwareの仮想ハードウェアがゲストオペレーティングシステムを解釈するように設定されている方法であるConfigured OS、実際のOSを表す実際のRunning OSを見ることができます。

    さまざまな基準に基づいてVmを検索
    さまざまな基準に基づいてVmを検索

    Vm replicantとScriptrunnerがクラスターでパワーオフされていると、

    vm replicantとScriptrunnerがクラスターでパワーオフされていると、

    Vm replicantとScriptrunnerがクラスターでパワーオフされていると、

    vm replicantとScriptrunnerがクラスターでパワーオフされていると、

    Vm replicantとScriptrunnerがクラスターでパワーオフされていると、Running OSそれらの値。 OSはVMware Toolsサービスによって収集されます。 使用できない場合、PowerCLIはオペレーティングシステム情報を取得できません。Vmware Toolsは、hypervisorの追加情報と管理機能を提供する、WindowsおよびLinux Vmの両方向けのゲスト内サービスです。 最も一般的には、クリーンシャットダウン、オペレーティングシステム情報、およびVmの高解像度のコンソール表示が提供されます。

    この情報を報告して提供する便利な方法は、上記のスクリプトをExport-CSVExport-Csvは、コンソールに表示されるのと同じ情報を持つCSVファイルを作成します。上記のコードを実行した後、EXCELでCSVファイルを開いてレポートを確認できるようになります。P>

    VM情報のCSVファイル
    VM情報のCSVファイル

    PowerCLIで仮想ハードディスクを検査

    PowerCLIで仮想ハードディスクを検査

    Get-Harddiskコマンドは知っておくべき別の便利なコマンドです。 Get-HardDiskコマンドレットを使用すると、Vmに接続されている仮想ハードディスクに関する情報を検査できます。

    たとえば、exchange1Vmに接続されている仮想ハードディスクに関する情報を照会するには、次のコマンドを実行します:

    PS51> Get-VM -Name exchange1 | Get-HardDisk | Format-List
    exchange1VMsに接続されている仮想ハードディスクに関する情報を照会
    exchange1VMsに接続されている仮想ハードディこの情報の一部は、KB単位の容量とGB単位の容量など、冗長である可能性があります。 しかし、StorageFormat(thin/thickプロビジョニングタイプ)を知ることには価値があります。 VMDKファイル名を知っています。

    たとえば、共通の問題が発生し、すべてのVMハードディスクが同じデータストアボリューム上に存在する場合、この知識によりトラブルシューティングが

    PowerCLIを使用した仮想ネットワークアダプターの検査

    仮想マシンのハードディスク情報を確認するだけでなく、仮想ネットワークアダプターを確認する 単一のVMのこれらのプロパティを確認するには、Get-NetworkAdpterコマンドレットを使用します。

    PS51> Get-NetworkAdapter -VM myVM

    同じネットワークに存在するすべてのVmのためにこのポートで以前に狩りをしていましたが、今回は特定のVMに接続されているアダプ

    Get-NetworkAdapter
    Get-NetworkAdapter

    これは、複数のネットワークアダプターが接続されているVmのトラブルシューティング これらのアダプタが適切なネットワークに接続されているかどうかを迅速かつ一目で判断できます。Invoke-VMScriptを使用したVmでPowerShellスクリプトを実行する

    Invoke-VMScriptを使用すると、Vm内でPowerShellコードを直接実行することもできます。 Hyper-V環境内でPowerShell Directを使用したことがある場合は、これも同様の体験になります。

    PowerShellリモート処理セッションを作成するか、ネットワーク経由でInvoke-CommandInvoke-VMScriptコマンドレットは、通常のWinRM

    例として、exchange1というVMで簡単なディレクトリリストを実行したいと思うかもしれません。 これを行うには、以下に示すように、dir C:\ScriptTextを渡します。P>

    PS51> Invoke-VMScript -VM exchange1 -ScriptText "dir C:\"

    結果は、VMコンソール自体からコマンドを実行したかのようになります。 Invoke-VMScript次に、VMで実行されたコマンドが返すすべての出力を中継します。

    Invoke-VMScript
    Invoke-VMScript

    これは基本的な例ですが、あなたが望むように複雑になることができます。 このPowerCLIコマンドレットを使用すると、ScriptTextパラメーター内でバッチ、PowerShell、またはBashの種類を指定できます。あなたはより高度なものにすることもできます。

    あなたはより高度なものにすることもできます。 以下では、Invoke-VMScript$script変数を使用してPowerShellコードを実行する方法を見ることができます。ScriptTextパラメータ入力。 これにより、VMが処理するためのよりカスタマイズされたスクリプト入力を作成できます。p>

    PS51> $script = 'Get-Disk'$guestCredential = Get-CredentialInvoke-VMScript -ScriptText $script -VM VM -GuestCredential $guestCredential -ScriptType Powershell

    ScriptText$scriptGuestCredentialパラメータの使用に気づいたかもしれません。 このパラメータは、VMオペレーティングシステムへの認証に使用されます。 このパラメーターは、スクリプトを別のアカウントとして実行する場合に特に便利です。

    アクション中のスクリプトは、以下のような出力になります。

    Invoke-VMScriptを使用してVM上でスクリプトを実行する
    Invoke-VMScriptを使用してVM上でスクリプトを実行する

    このスクリプトの結果は、VMのディスク情報を提供します。 それに基づいて、ドライブのフレンドリ名としてVMware Virtual Diskのため、リモートVMであることを知っている必要があります。

    Get-Viewで高度な取得

    基本的なコマンドレットのいくつかがExtensionDataというプロパティを返すのを見たことがあるかもしれません。 このプロパティは、多くのPowerCLIコマンドレットをPowerShellGet-Memberコマンドレットにパイプすることで見つけることができます。 それが何だったのか疑問に思っていたら、今見つけるチャンスです。

    このベンチャーの次のステップは、Get-Viewコマンドレットを理解することです。 VMware PowerCLIは、VMに多くの異なるクエリを活用して、Get-VMGet-Viewコマンドレットを使用してのみアクセスできるフードの下にはたくさんあります。

    このコマンドレットを使用すると、多くのスクリプトが表示される可能性があります。 このコマンドレットの動作を見るのに慣れるのに時間を費やすことができます。 理解するには、Get-Viewコマンドレットを使用して仮想マシン情報(この例ではexchange1)を取得します。

    このコマンドレットのFilterオプションでは、個々の文字列値ではなくPowerShellハッシュテーブルを使用する必要があります。 独自の独自のスクリプトを構築するときに注意してください!

    PS51> Get-View -ViewType VirtualMachine -Filter @{"Name" = "myVMName"}

    上記のコマンドの結果は、VMに対してアクションを実行したり、オブジェクトプロパティを取得したりするためのネストされた構

    Get-View
    Get-View

    上記の同じスクリプトを使用して出力を変数に送信すると、ドット表記でネストされたオプ ここでは、PowerCLI経由で報告することができるゲストosの追加情報をすべて表示および取得できます。P>

    PS51> $VM = Get-View -ViewType VirtualMachine -Filter @{"Name" = "myVMName"}PS51> $VM.Guest
    フィルタパラメータでGet-Viewを使用する
    フィルタパラメータでGet-Viewを使用する

    おそらく、あなたは単一のプロパティを選択します。 その場合は、以下を実行して個々の値を絞り込むことができます。すべてのタイプのVMwareオブジェクトには、多くのGet-Viewオプションがあります。 これらのオプションのすべてを探索し、この強力なコマンドレットに詳細に行くVMwareからこの有益な記事を確認して自由に感じます! PowerCLIを利用したいが、入力してコードをビルドしたくない場合は、vCenterでのコードキャプチャがここにあります。 コードキャプチャは、Active Directory管理センターと同様に機能する新しい開発者ツールです。 このPowerCLIチュートリアルでは、コードキャプチャについて説明します。

    このツールは、GUI内で実行したすべてのアクションを記録します。 その後、これらのすべてのアクションを変換し、PowerCLIスクリプトを提供します。

    デフォルトでは、コードキャプチャはオンになっていません。 これをオンにするには、vCenter applianceを開き、以下に示すようにメニュー->Developer Centerに移動します。p>

    vSphereのDeveloper Centerメニュー項目への移動
    vSphereのDeveloper Centerメニュー項目への移動

    Developer Centerタブで、コードキャプチャを有効にするオプP>

    コードキャプチャを有効にする
    コードキャプチャを有効にする

    コードキャプチャを有効にすると、vCenterヘッ 一度有効にすると、アクションを記録してPowerCLI出力に変換したいときはいつでも、記録ボタンを押してGUIアクティビティを記録する必要があります。

    コードキャプチャ有効インジケータ
    コードキャプチャ有効インジケータ

    赤い記録ボタンがvCenterのログオンユーザーセクションの横に表示され、いつでも記録できるようになります。

    コードキャプチャを説明するには、新しい仮想マシンの作成ウィザードを実行します。

    1. 録音ボタンをクリックして録音を開始します。 これにより、赤い録音ボタンが脈打つようになります。VMwareホストを右クリックし、新しい仮想マシンを作成します。 すべての既定値を使用して新しい仮想マシンを作成する結果のウィザードを実行します。
    2. 仮想マシンが作成されたら、録画ボタンをクリックして録画を停止します。

    結果の出力は、予想よりもわずかに冗長になる可能性があります。 出力には、VMを作成する前にGUIを参照するすべてのアクションも含まれます。 しかし、コメントにCreateVM_Taskで始まるセクションが表示されるはずです。 ここで、コードがVMの作成を開始します。以下は、コードキャプチャを介したGUIの新しいVMウィザードプロセスのCreatevm_Task出力の一部です。

    開発者セこの出力は少し圧倒される可能性がありますが、仮想マシンで使用可能な構成オプションの数に直接公開されます。 あなた自身の必要性によって、今あなた自身の原稿の調節をし、あなたの中心の内容にカスタマイズするために権限を与えられる。

    コードキャプチャユーティリティは、VMの作成だけに限定されません。 また、ネットワークの変更、小さなVMの変更、またはホスト構成の変更のためのコードを構築することもできます。 GUIアクションのPowerCLI出力を確認できることにより、コードとしてデプロイされたインフラストラクチャへの近道を取ることができます。

    PowerCLIチュートリアルの概要

    この記事では、多くの地面をカバーしました。 いい仕事だ! PowerCLIがVMwareインフラストラクチャの管理にもたらす力を実感していただけたことを願っています。

    幅広い製品ベースのためのPowerCLIには多くのコマンドレットがありますが、ここではいくつかしか取り上げませんでした。 この素晴らしいツールのより多くの記事のためにこのブログにお楽しみにしてください!PowerCLIのダウンロードとインストール方法

  • 公式のVMware PowerCLI docs

コメントを残す

メールアドレスが公開されることはありません。