デプロイを管理するための psake スクリプトがあります。プロセスは次のとおりです。
- テストのコンパイルと実行
- msbuild を使用して展開パッケージを生成する
- 内部または外部に展開しているかどうかを確認する
- 内部の場合は、生成された cmd ファイルを実行します
- 外部の場合、ユーザー名とパスワードの入力を求め、ユーザー名とパスワードをパラメーターとして生成された cmd ファイルを実行します。
外部に展開するときに、次の方法で msdeploy を実行しています。
exec { & $deploy_cmd /Y /M:$msdeploy_url /U:$user /P:$pwd /A:NTLM }
パスワードにアンパサンド (&) が含まれている場合、cmd ファイルは、パラメーターを変数に割り当てるときに & の前にパスワードの部分を割り当て、後でその部分を実行しようとすると想定しています。これはbatファイルの動作です(&はコマンドを区切るために使用されます)。
パスワードのプロンプトでキャレット (^) を使用してパスワードをエスケープしようとしましたが、うまくいきませんでした。
パスワードを変更する以外に、他に代替手段はありますか?