PowerCLIのインストールと基本的なコマンドレット
インストール
・PowerCLI のダウンロード
http://www.vmware.com/support/developer/PowerCLI/
ダウンロードのためのIDとパスワードは適当に何とかする
・実行時の注意
初めての実行時に以下のエラーが出る。
スクリプトの実行がシステムで無効になっているため、ファイル C:\Program Files (x8 )\VMware\Infrastructure\vSphere PowerCLI\Scripts\Initialize-PowerCLIEnvironmen .ps1 を読み込めません。詳細については、「get-help about_signing」と入力してヘ ルプを参照してください。 発生場所 行:1 文字:2 . <<<< "C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\Script \Initialize-PowerCLIEnvironment.ps1" + CategoryInfo : NotSpecified: (:) []、PSSecurityException + FullyQualifiedErrorId : RuntimeException
管理者権限でPowerCLIを起動して、以下のコマンドを打てばOK。
PowerCLI> Set-ExecutionPolicy RemoteSigned
ヘルプ
・コマンドリファレンス
http://www.vmware.com/support/developer/PowerCLI/PowerCLI51/html/index.html
・helpの表示
Power CLI> help Get-VM
状態確認】
・VM一覧の取得
Power CLI> Get-VM
・特定VMの情報取得
Power CLI> Get-VM -Name "VM名" | Select-Object Name, PowerState, NumCpu, MemoryMB
・データストアパスの取得
Power CLI> Get-Datastore | Select-Object DatastoreBrowserPath
・VMホスト一覧の取得(物理ブレード一覧の取得)
Power CLI> Get-VMHost
・インベントリの取得
Power CLI> Get-Inventory
作成
・新規VM作成
Power CLI> New-VM -Name 'win2k3-001' -vmhost (Get-VMHost -Name 192.168.0.221) -Datastore 'datastore' -NumCpu 1 -DiskMB (1024*30) -MemoryMB (1024*2) -DiskStorageFormat 'thin' -GuestID 'winNetStandardGuest'
・メモリの変更
Power CLI> Get-VM -name "win2k3-00[1-5]" |foreach {Set-VM -VM $_ -MemoryMB (1024*2)}
・VMの起動
Power CLI> Get-VM -name "win2k3-00[1-5]" | foreach {Start-VM -VM $_}
・VMの停止
Power CLI> Get-VM -name "win2k3-00[1-5]" | foreach {Stop-VM -VM $_}
・vCenter Serverから特定の仮想マシンをインベントリから削除する
Power CLI> Remove-VM -VM "WinVM" -Confirm:$false
上記の例では、「WinVM」という仮想マシンを強制的にインベントリから削除しています。
インベントリから削除しているだけで、データストア上にファイルは残ります。
・データストア上のvmxファイルからvCenterのインベントリに登録する
Power CLI> New-VM -VMFilePath "[datastore]WinVM/WinVM.vmx" -VMHost "172.16.10.250"
上記の例では、「datastore」という名前のデータストアにある「WinVM」フォルダに格納されている「WinVM.vmx」というvmxファイルから、「172.16.10.250」のIPアドレスを持つESXホストのインベントリに仮想マシンを登録しています。
・テンプレートから128台の仮想マシンをクローンする(仮想マシン名vm-1〜vm-128)
$esx = Get-VMHost$tmpl = Get-Template 1..128 | foreach { New-VM -VMHost $esx -Name ("vm-" + $_) -Template $tmpl }
・仮想ネットワーク・アダプタの接続ポート・グループをまとめて切り替える
Get-VM | Get-NetworkAdapter | Where-Object { $_.NetworkName -eq} | Set-NetworkAdapter -Network
・取得から1ヶ月以上経過した古いスナップショットを削除する
Get-VM | Get-Snapshot | Where-Object { $_.Created -lt (Get-Date).AddMonths(-1) } | Remove-Snapshot
・パフォーマンスデータをCSVに書き出す
Get-Stat -Realtime -Entity (Get-VM) | Export-csv -encoding unicode
・「VMware Tools のインストール」状態(CDマウント)のままになっている仮想マシンを一覧化
Get-VM | Get-View | Where-Object {$_.Summary.Runtime.ToolsInstallerMounted -eq $True } | Select Name