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

ログイン

Power CLI> Connect-VIServer -User [ユーザ名] -Password [パスワード] [vCenterのIPアドレス]

状態確認】

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