Задать вопрос

Как передать пароль exe запускаемому из powershell?

Добрый день пишу скрипт для запуска vacuumdb
Сам скрипт
Set-Location "C:\Program Files\PostgreSQL\14.2-3.1C\bin"
.\vacuumdb.exe --dbname postgres --host 127.0.0.1 --port 5432 --username postgres

При запуске появляется запрос на пароля
628c7db1ad225319598063.jpeg
В параметрах vacuumdb.exe есть (-w -W но их использование не помогает)

Подскажите как передать пароль vacuumdb.exe средствами powershell ?
  • Вопрос задан
  • 435 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
@dr753 Автор вопроса
Спасибо всем за помощь
Пока решил вопрос так (ибо нужно чтоб работало уже сейчас) , в дальнейшем попробую реализовать как советовал Роман и Max

#Задаем пароль для postgree в переменную окружения
$env:PGPASSWORD = 'DrC759123'
#Указываем где лежит запускаемый exe
Set-Location "C:\Program Files\PostgreSQL\14.2-3.1C\bin"
#Запускаем его с нужными параметрами
.\vacuumdb.exe --dbname postgres --host 127.0.0.1 --port 5432 --username postgres
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@NortheR73
системный инженер
например:
Get-Credential (postgres) | Export-Clixml -Path "c:\Scripts\PGHash.Cred"
...
$Cred = Import-CliXml -Path "c:\Scripts\PGHash.Cred"

$Cred.UserName = "postgres"
$Cred.Password - собственно, пароль
Ответ написан
Комментировать
@Akela_wolf
Extreme Programmer
Храните пароль в файле pgpass
С vaccumdb не пробовал, но psql его оттуда отлично подхватывает.

https://www.postgresql.org/docs/current/libpq-pgpa...
Ответ написан
Комментировать
@MaxKozlov Куратор тега PowerShell
Помимо файла pgpass, скорее всего будет работать переменная окружения PGPASSWORD
в Powershell - $env:PGRASSWORD = 'Pa$$w0rd'
Только хранить это в коде - такое себе....
Можно хотя бы хранить их как текстовое представление SecureString - оно хотя б к компу и юзеру привязано

Update: О, как раз пример Роман Безруков дал :)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы