Я потратил немало часов на изучение и тестирование этого, но не повезло ...
У нас есть Azure конвейер выпуска DevOps, который использует секретные переменные, передаваемые в скрипты Powershell. Это работает довольно хорошо.
Недавно мы начали использовать задачу «Powershell на целевых машинах» для удаленного запуска Powershell. Это сработало довольно хорошо, за одним большим исключением: проклятый знак доллара.
Вот сценарий:
Пароль, хранящийся в секретной переменной Devops Azure. На секретную переменную ссылаются в задаче «Powershell на целевых машинах».
Пока все хорошо.
Теперь поместите знак доллара ($) в значение секретной переменной пароля.
Знак доллара интерпретируется как начало имени переменной Powershell, поэтому, в конце концов, передаваемое значение в конечном итоге обрезается, чтобы стать частью переменной перед знаком доллара. Это кошмар для исследования, потому что секретные значения не могут быть отображены.
Мы перепробовали много, много вещей, включая одинарные, двойные, без кавычек, обратных кавычек и почти все, что нужно для стекопотока и других offer.
Короче говоря, нам просто нужно безопасно передать пароль в скрипт Powershell, который выполняется на удаленной машине в домене. В этом есть большая гибкость.
Есть предложения?