※2013/06/06 の投稿です。
PowerCLI で作業履歴(TeraTermログ的な)を残すには、
「Start-Transcript」 というコマンドレットが便利です。
これはPowerCLI 特有のコマンドではなく、ベースである PowerShell の標準的なコマンドレットです。
下記のようにコマンド実行すると、コマンド実行結果がファイルに保存されます。
PowerCLI> Start-Transcript <ログ出力ファイル名>
※出力を停止するときは、「Stop-Transcript」を実行します。
実行例
PowerCLI のコマンド実行結果をファイルに残してみます。
ためしに、「powercli.log」というファイルに出力します。
PowerCLI C:\work> Start-Transcript powercli.log ★ファイルへの出力開始
トランスクリプトが開始されました。出力ファイル: powercli.log
PowerCLI C:\work> Get-VMHost | select Name,PowerState | ft -AutoSize ★適当にコマンド実行Name PowerState
---- ----------
esxi51n2.vs51.lab PoweredOn
esxi51n1.vs51.lab PoweredOn
PowerCLI C:\work> Stop-Transcript ★ファイルへの出力を終了
トランスクリプトが停止されました。出力ファイル: C:\work\powercli.log
PowerCLI C:\work>
コマンド実行結果の出力を見てみます。
PowerCLI C:\work> type .\powercli.log
**********************
Windows PowerShell トランスクリプト開始
開始時刻: 20130606012555
ユーザー名 : WIN7PC-01\testuser1
コンピューター : WIN7PC-01 (Microsoft Windows NT 6.1.7601 Service Pack 1)
**********************
トランスクリプトが開始されました。出力ファイル: powercli.log
PowerCLI C:\work> Get-VMHost | select Name,PowerState | ft -AutoSizeName PowerState
---- ----------
esxi51n2.vs51.lab PoweredOn
esxi51n1.vs51.lab PoweredOn
PowerCLI C:\work> Stop-Transcript
**********************
Windows PowerShell トランスクリプト終了
終了時刻: 20130606012610
**********************
PowerCLI C:\work>
※かならず「Stop-Transcript」で出力を停止してから確認します。
「Start-Transcript」したままファイルを表示すると、
ファイル内容表示→ファイルに出力→ファイル内容表示... のループになってしまいます。
なお、「Stop-Transcript」を実行しなくても、
PowerCLI の画面を閉じれば、自動的にファイルへの出力も停止します。
おまけ
PowerCLI (PowerShell)では、ユーザ名やタイムスタンプが取得できます。
こういった情報をファイル名の一部として指定すると便利です。
PowerCLIを実行しているコンピュータ名
PowerCLI> $Env:COMPUTERNAME
WIN7PC-01
現在のタイムスタンプ
PowerCLI C:\work> Get-Date -Format "yyyyMMddHHmmss"
20130606013128
PowerCLIを実行しているWindowsユーザ名
(testuser1というユーザでPowerCLIを実行しているWindowsにログイン中)
PowerCLI C:\work> $Env:USERNAME
testuser1
PowerCLIからvCenterに接続しているユーザ名
(vcadminというユーザで、vCenterに接続中)
PowerCLI C:\work> (Get-View "SessionManager").CurrentSession.FullName.Trim()
vcadmin
たとえば、下記コマンドラインのようにファイル名を指定すると、
「WIN7PC-01_testuser1_20130606013254.log」といった名前のファイルに
コマンドの結果を残すことができます。
PowerCLI> Start-Transcript ($Env:COMPUTERNAME + "_" + $Env:USERNAME + "_" + (Get-Date -Format "yyyyMMddHHmmss") + ".log")
以上、PowerCLI のコマンド作業履歴を残す方法でした。