vsphere 4.1: vmware vsphere PowerCLI 使い方

 

VMware vSphere PowerCLI とは


使い易いWindows PowerShellインターフェイスで、VMware vSphereを管理できます
すぐに使用可能なcmmandlets、サンプルコード、ドキュメント、およびライブラリが100以上含まれており、強力なスクリプトや定常作業の自動化を実現します。

使用バージョン:

VMware vSphere PowerCLI 4.1 Update 1
Build 332441 is version 4.1 Update 1 of VMware vSphere PowerCLI.

インストール要件:

vSphere PowerCLIを使用するには、次のソフトウェアのインストールが必要です
  • .NET 2.0 Service Pack 1
  • Windows PowerShell 1.0 or Windows PowerShell 2.0 


インストールOS要件:

vSphere PowerCLI 4.1 Update 1 は次のOS上で動作します。 32-bit と 64-bit 共にOK
  • Windows 7
  • Windows 2008 Server
  • Windows Vista
  • Windows XP Service Pack 2
  • Windows Server 2003 Service Pack 2

VMware環境サポート要件:

  • VMware ESX 4.1 / vCenter Server 4.1
  • VMware ESX 4.1 i
  • VMware ESX 4.0 Update 2 / vCenter Server 4.0 Update 2
  • VMware ESX 4.0 Update 2 i
  • VMware VirtualCenter 2.5 Update 6
  • VMware ESX 3.5 Update 5
  • VMware ESX 3.5 Update 5 i

VMware vSphere PowerCLI インストール方法


以下のVMwareページからインストーラーがダウンロードできます

使い易いWindows PowerShellインターフェイスで、
VMware vSphereを管理できます

インストール先OS: Windows Server 2008 R2
インストールバージョン: VMware-PowerCLI-4.1.1-332441.exe

This installation of VMware vSphere PowerCLI requires an additional component, 'VMware VIX', which will be installed automatically. Click OK to continue.

The PowerShell execution policy of this computer is not set to "RemoteSigned". This prevents execution of PowerShell scripts on your computer. This will result in non-problematic errors when VMware vSphere PowerCLI is invoked. It is recommended that you set the execution policy to "RemoteSigned" in order to be able to execute scripts and to hide the errors in VMware vSphere PowerCLI Console. This can be done by invoking the command 'Set-ExecutionPolicy RemoteSigned' from a PowerShell prompt.

Press Continue to skip and continue install or Cancel to exit the installation.











VMware vSphere PowerCLI 初めの一歩




スクリプトの実行がシステムで無効になっているため、ファイル C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\Scripts\Initialize-PowerCLIEnvironment.ps1 を読み込めません。詳細については、「get-helpabout_signing」と入力してヘルプを参照してください。
発生場所 行:1 文字:2
+ . <<<<  "C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\Script
s\Initialize-PowerCLIEnvironment.ps1"
    + CategoryInfo          : NotSpecified: (:) []、PSSecurityException
    + FullyQualifiedErrorId : RuntimeException

PowerShellではセキュリティ上の理由から、デフォルトでスクリプトの実行が無効に設定されている。
そのため、スクリプト・ファイルを実行するためには、あらかじめPowerShellのスクリプト実行ポリシーを変更しておく必要がある。
実行ポリシーを変更するにはSet-ExecutionPolicyコマンドレットを利用する。

PS > Set-ExecutionPolicy RemoteSigned

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシー
を変更すると、about_Execution_Policies のヘルプ
トピックで説明されているセキュリティ上の危険にさらされる可能性があります。実行
ポリシーを変更しますか?
[Y] はい(Y)  [N] いいえ(N)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): Y
PS >



          Welcome to the VMware vSphere PowerCLI!

Log in to a vCenter Server or ESX host:              Connect-VIServer
To find out what commands are available, type:       Get-VICommand
To show searchable help for all PowerCLI commands:   Get-PowerCLIHelp
Once you've connected, display all virtual machines: Get-VM
If you need more help, visit the PowerCLI community: Get-PowerCLICommunity

       Copyright (C) 1998-2010 VMware, Inc. All rights reserved.


[vSphere PowerCLI] C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI>



VMware vSphere PowerCLI でvCenterに接続


VMware vSphere PowerCLIを使用して、VMware vCenterに接続する
<vCenter IPアドレス>と<ユーザー名>は環境に合わせてください

[vSphere PowerCLI] > Connect-VIServer -Server <vCenter IPアドレス> -User <ユーザー名> -Password <パスワード>
警告: There were one or more problems with the server certificate:

* The X509 chain could not be built up to the root certificate.

* The certificate's CN name does not match the passed value.


Name                           Port  User
----                           ----  ----
<vCenter IPアドレス>           443   <ユーザー名>

試しに、コマンドを打って仮想マシンリストを表示してみる。

[vSphere PowerCLI] > Get-VM -Name "*"

Name                 PowerState Num CPUs Memory (MB)
----                 ---------- -------- -----------
vc01                 PoweredOn  2        3072
win2003test2         PoweredOff 1        4096
win2003test          PoweredOff 1        4000


VMware vSphere PowerCLI でゲストOSのディスク容量確認


サンプル: 

$VCenter = "<vCenter IPアドレス>"
$User = "<ユーザー名>"
$Pass = "<パスワード>" 

$Mini = 3000
$file = ".\mailbody.txt"

$Smtp = "<SMTP IPアドレス>"
$toAddr = "<送信先メールアドレス>, <送信先メールアドレス2>"
$fromAddr = "<送信元メールアドレス>"

# vCenterへ接続
$Server = Connect-VIServer -Server $VCenter -User $User -Password $Pass


Get-VM | Get-VMGuest | ForEach-Object {
  $VMGuest = $_
  $VMGuest.Disks | ForEach-Object {
    $Report = "" | select-Object Hostname,Volume,"Free MB"
    $Report.Hostname = $VMGuest.VmName
    $Report.Volume = $_.Path
    $Report."Free MB" = $_.FreeSpace/1MB
    $Report."Free MB" = [int] $Report."Free MB"
if ($Report."Free MB" -le $Mini)
{
     $Report | Out-File $file
}
  }
}

# vCenterから切断。切断プロンプトを出さない
Disconnect-VIServer -Server $Server -Confirm:$false

# メール送信
$Subject= "VMdisk: GuestOS Drive list under " + $Mini + "MB  " + (Get-Date).toString() 

# Joinメソッドは、Get-Contentで読み込んだ1行単位のテキスト
# (文字列配列)を改行(`r`n)で連結

$Body = [String]::Join("`r`n", (Get-Content $file))

$mailer = new-object System.Net.Mail.SmtpClient($Smtp)
$mailer.Send($fromAddr,$toAddr,$Subject,$Body) 


コマンドプロンプトからVMware vSphere PowerCLI実行(タスクスケジュール登録)


powershell.exe -psc "C:\Program Files\VMware\Infrastructure\vSphere PowerCLI\vim.psc1" <PS1スクリプトパス>

 

サブページ リスト

作成日:2011/01/12
更新日:2011/01/19
Comments