3

コマンドレットを呼び出すときに、PowerShell変数の値を何らかの方法で展開して、コマンドレットのパラメーター(関連付けられた値)として機能させることはできますか?

これが私が試していることの例です:

$CREDENTIALED_SECTION = "-Username $USER_NAME -Password $PASSWORD"
.
.
.


Invoke-Sqlcmd -ServerInstance "$SERVER_NAME" -Query "$SQL_STATEMENT" "$CREDENTIALED_SECTION" -Database "$DATABASE"

問題は、Invoke-Sqlcmdの実行時に発生します。「-Username-Password」を受け入れる位置パラメーターが見つからないためmy usernamemy password変数を展開していますが、パラメーターのセットとして適切に送信されていないことがわかります。私がここで試していることを行う方法はありますか?

4

1 に答える 1

7

代わりにハッシュテーブルを使用して、次のようなパラメーターをPowerShellコマンドに渡すことができます。

$CREDENTIALED_SECTION = @{Username=$USER_NAME; Password=$PASSWORD}

Invoke-Sqlcmd -ServerInstance $SERVER_NAME -Query $SQL_STATEMENT @CREDENTIALED_SECTION -Database $DATABASE

この場合、PowerShell変数を引用する必要はないことに注意してください。また、コマンド呼び出しでスプラッティング構文を使用する必要があります@<hashtable_with_parameter_name_value_pairs>

于 2012-09-13T21:43:26.497 に答える