我必须在运行我的管道的 Azure 管道代理中创建一个 postgres 用户。为此,我在管道中添加了一个 cmd 任务来创建用户。但是我希望用户名和用户域采用小写形式。
set PATH=C:\Program Files\PostgreSQL\14\bin;%PATH%
@ECHO OFF
SET "userdomain=%USERDOMAIN%"
SET "username=%USERNAME%"
ECHO User Domain: %userdomain%
ECHO Username: %username%
echo Creating role %username%@%userdomain%...
psql --username postgres -d postgres -h localhost -p 5432 -c "CREATE ROLE \"%username%@%userdomain%\" LOGIN SUPERUSER INHERIT CREATEDB CREATEROLE REPLICATION;"
echo Role created successfully.
**我还创建了一个 powershell 脚本来做同样的事情,但它没有用。 **
Write-Host "*****Hello World"
echo 'PGBIN is ' $env:PGBIN
echo 'PGDATA is ' $env:PGDATA
echo 'PGROOT is ' $env:PGROOT
echo 'Contents of PGBIN'
ls $env:PGBIN
Set-Service postgresql-x64-14 -StartupType manual
Start-Service postgresql-x64-14
Get-CimInstance win32_service | Where-Object Name -eq "postgresql-x64-14"
#Create Role and Username value
$UserNameForPostgres = "$env:username@$env:userdomain".ToLower()
我试过在 cmd 中提到这样的用户名 %@lower[%USERNAME%],但它不起作用。有人可以就此提出建议吗?