ここでは、VMwareのPowerCLIを使ったスクリプトをWindowsのタスクスケジューラで動作させてみたいと思います。
タスクスケジューラに登録すれば自動化もできますね 🙂
PowerCLI Document
動作環境
| 項目 | バージョン |
|---|---|
| OS | Windows Server 2012R2 |
| PowerCLI | vSphere PowerCLI 6.3 |
PowerShellから動かすには
PowerCLIにあるコマンドをPowershell上から実行するには以下のPSSnapinを読み込ませればよさそうです。
- VMware.VimAutomation.Core <- 標準的なものであればこれだけでよさげ
- VMware.DeployAutomation
- VMware.ImageBuilder
通常のスクリプト(ps1)から読み込ませる処理は以下のようにします。
|
1 2 3 4 5 6 7 8 |
# VMware Spnapin List. $vm_snaplist = @('VMware.VimAutomation.Core','VMware.DeployAutomation','VMware.ImageBuilder') # Add VMware PSSnapin. foreach($i in $vm_snaplist) { if(-not(Get-PSSnapin -Name $i > $null 2>&1)) { Add-PSSnapin $i } } |
テストスクリプトについて
今回動作させるスクリプトは以下のものを使おうと思います。
以下のパラメーターは環境に合ったものを入れます。
|
1 2 3 4 5 |
# vCenter or ESXi Connection Variable. $server = "" $user = "" $password = "" |
タスクスケジューラ登録
(1) コマンドプロントを起動して以下のコマンドを実行してタスクスケジューラーを起動します。
|
1 2 |
C:\Users\Administrator>taskschd.msc |
(2) 右クリックをして タスクの作成(R)... をクリックします。

(3) 名前 を入力して ユーザーがログオンしているかどうかにかかわらず実行する(W) を選択して 操作 タブを開きます。

(4) 新規(N)... をクリックします。

(5) プログラムの開始 になっていることを確認して以下のパスを入力して OK をクリックします。
| 項目 | パラメーター |
|---|---|
| プログラム/スクリプト(P) | C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe |
| 引数の追加 | -c “C:\Users\Administrator\Desktop\output_vmlist.ps1” |

(6) トリガー タブを選択します。

(7) 新規(N)... をクリックします。

(8) スクリプトを実行する条件を設定して OK をクリックします。
ここでは、日時を指定しています。

(9) タスクを作成するために OK をクリックします。

(10) パスワードを求められるので実行ユーザーのパスワードを入力して OK をクリックします。

これで、時間になったら結果ファイルが出力されていれば問題ありません 🙂
