今回は、PowerCLI を起動したときの「PowerCLI ~path~>」についての話です。
PowerCLI を起動したときの、デフォルトのプロンプト文字列ですが・・・
PowerShell の prompt ファンクションを PowerCLI 起動時の初期化スクリプトで変更しています。
PowerCLI C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI> cat .\Scripts\Initialize-PowerCLIEnvironment.ps1
(省略)
# Modify the prompt function to change the console prompt.
# Save the previous function, to allow restoring it back.
$originalPromptFunction = $function:prompt
function global:prompt{
# change prompt text
Write-Host "$productShortName " -NoNewLine -foregroundcolor Green
Write-Host ((Get-location).Path + ">") -NoNewLine
return " "
}
(省略)
「Add-PSSnapin VMware.VimAutomation.Core」などで PowerCLI 関係の
モジュールを読み込んだ場合は、
このスクリプトが読み込まれないのでプロンプトは変更されません。
ちなみに、$productShortName という変数には「PowerCLI」が入っています。
PowerCLI C:\> $productShortName
PowerCLI
もともとの PowerShell プロンプトは、このような感じのようです。
PowerCLI C:\> $originalPromptFunction
$(if (test-path variable:/PSDebugContext) { '[DBG]: ' } else { '' }) + 'PS ' + $(Get-Location) + $(if ($nestedpromptlevel -ge 1) { '>>' }) + '> '
このブログのコマンド例のようにしたい場合は、このような感じにしたりします。
function prompt{Write-Host "PowerCLI" -NoNewLine -foregroundcolor Green;"> "}
PowerCLI C:\>
PowerCLI C:\> function prompt{Write-Host "PowerCLI" -NoNewLine -foregroundcolor Green;"> "}
PowerCLI>
以上、PowerCLI のプロンプト文字列についてでした。