いくつかのことを自動化するために使用したいと思っているラッパーPowerShellスクリプトがあります。これは非常に基本的なものであり、スクリプト内の行であるかのようにスクリプトを実行するパラメーターを受け入れます。私は絶対にそれを動作させることができません。
例:
param( [string[]] $p)
echo $p
# Adds the base cmdlets
Add-PSSnapin VMware.VimAutomation.Core
# Add the following if you want to do things with Update Manager
Add-PSSnapin VMware.VumAutomation
# This script adds some helper functions and sets the appearance. You can pick and choose parts of this file for a fully custom appearance.
. "C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\Scripts\Initialize-VIToolkitEnvironment.ps1"
$p
上記の例では、$pをスクリプトの行であるかのように実行します。私はこれが安全ではないことを知っています、そしてそれはおそらく問題があるところです。
スクリプトを実行して$pのパラメーターを渡す方法は次のとおりです。
D:\ps\test>powershell -command "D:\ps\test\powershell_wrapper.ps1" 'Suspend-VM servername -Verbose -Confirm:$False'
'Suspend-VM servername -Verbose -Confirm:$ False'のパラメーターをスクリプト内で実行するにはどうすればよいですか?値をパラメーターとして渡すのではなく、スクリプトに値を含めるだけで、問題なく実行されます...