Я определил некоторые переменные определения сборки, некоторые из которых я сделал как секретный тип.
Я пытаюсь передать секретную переменную $RPASS
встроенной задаче сценария powershell в TFS, но, похоже, она не работает.
Я посмотрел этот пост здесь: Как добавить секретную переменную в качестве переменной среды задачи в VSTS
, однако в примерах используется командная строка.
возможно ли передавать подобные аргументы во встроенной задаче powershell?
$sec = New-Object -TypeName System.Security.SecureString
"$RPASS".ToCharArray()|%{$sec.AppendChar($_)}
$creds = new-object -typename System.Management.Automation.PSCredential -args "$env:USER", $sec
Send-MailMessage -From "tfs@domain.com" -Subject "YAY!" -To "user@domain.com" -Body "$env:DB_NAME" -SmtpServer server.com -Port 25 -Credential $creds
После второго ответа в этом посте я попытался передать аргументы
$(RPASS)
, а затем изменили эту строку $arg[0].ToCharArray()|%{$sec.AppendChar($_)}
, но это не сработало либо
[error] Невозможно индексироватьв пустой массив.
Я попытался передать его непосредственно в сценарий следующим образом:
$(RPASS).ToCharArray()|%{$sec.AppendChar($_)}
, но это привело к ошибке:
+ ********.ToCharArray()|%{$sec.AppendChar($_)}
+ ~
An expression was expected after '('.
+ CategoryInfo : ParserError: (:) [], ParseException
+ FullyQualifiedErrorId : ExpectedExpression
2019-06-13T00:57:50.7974750Z ##[error]Process completed with exit code 0 and had 1 error(s) written to the error stream.