PowerCLI コンソール起動と同時にコマンドを実行してみる。

PowerCLI コンソール起動と同時にコマンドを実行してみる。

以前、PowerCLI で作業履歴を残す方法をポストしました。

PowerCLI でコマンド作業履歴を残す方法

今回はこれを

PowerCLI コンソール起動時に、自動的に開始できるようにしてみようと思います。

PowerCLI のベースになっている PowerShell の起動時には

$profile という変数の PowerShell スクリプトが実行されます。

※bash の「.bash_profile」ファイルのような感じです。

今回の例では Windows 7 環境で実行していて、ファイル名は

C:\Users\<ユーザ名>\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

となっています。

PowerCLI C:\> Get-Variable -Name profile | ft -AutoSize

Name    Value

----    -----

PROFILE C:\Users\gowatana\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

PowerCLI C:\> $profile

C:\Users\gowatana\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

デフォルトだと、このスクリプトファイルも、

配置されるディレクトリも存在しません。

PowerCLI C:\> dir C:\Users\gowatana\Documents\WindowsPowerShell

Get-ChildItem : パス 'C:\Users\gowatana\Documents\WindowsPowerShell' が存在しないため検出できません。

発生場所 行:1 文字:4

+ dir <<<<  C:\Users\gowatana\Documents\WindowsPowerShell

    + CategoryInfo          : ObjectNotFound: (C:\Users\gowatana\Documents\WindowsPowerShell:String) [Get-ChildItem]、ItemNotFoundException

    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

そこで、スクリプトファイルを新規作成します。

このとき、WindowsPowerShell というディレクトリ

(C:\Users\<ユーザ名>\Documents\WindowsPowerShell)も新規作成します。

PowerCLI C:\> mkdir C:\Users\gowatana\Documents\WindowsPowerShell

    ディレクトリ: C:\Users\gowatana\Documents

Mode                LastWriteTime     Length Name

----                -------------     ------ ----

d----        2014/05/14      2:36            WindowsPowerShell

PowerCLI C:\> notepad C:\Users\gowatana\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

スクリプトファイル Microsoft.PowerShell_profile.ps1 には、

下記のような内容を記載して保存しておきます。


Microsoft.PowerShell_profile.ps1

$log_dir = "c:\work\log"

$time_stamp = Get-Date -Format "yyyyMMddHHmmss"

$log_file = $log_dir + "\" + $Env:COMPUTERNAME + "_" + $Env:USERNAME + "_" + $time_stamp + ".log"

Start-Transcript $log_file

PowerCLI のコンソールを起動してみると、

下記のようにスクリプトが自動実行され、作業履歴の取得が開始されます。

※上記のスクリプトのでは、事前に C:\work\log フォルダを作成しておく必要があります。

トランスクリプトが開始されました。出力ファイル: c:\work\log\X121E-01_gowatana_20140514024600.log

          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-2013 VMware, Inc. All rights reserved.

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

実際はこのような感じになります。

powercli_profile.png

以上、PowerShell プロファイルで

PowerCLI の作業履歴取得を自動開始してみる話でした。

Version history
Revision #:
1 of 1
Last update:
‎05-13-2014 04:47 PM
Updated by: