设置PowerShell Azure SQL连接字符串参数



我在一个资源组中有一个Azure SQL数据库,在一个单独的资源组中也有一个密钥库。所有内容都已部署,但我想将sql db的连接字符串值分配给一个变量,并使用它在我的密钥保管库资源中创建一个秘密。我目前将此设置为连接字符串值:

$dbsecretvalue=ConvertTo SecureString-字符串"服务器=tcp:$sqlServerfqdn,1433;初始目录=$database;持久安全信息=False;用户ID=$adminlogin;密码=$Password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;连接超时=30〃-AsPlainText-强制

问题是在密钥保管库中,将附加文本添加到机密值,而不仅仅是服务器名称:服务器=tcp:@{FullyQualifiedDomainName=servername.azure.net…

我如何删除额外的文本,以便在设置变量时只返回sql数据库的FQDN(例如:databaseserver.azure.net,而不是@{FullyQualifiedDomainName=databaseserver.aure.net(?我的powershell经验非常有限,如有任何帮助/建议,将不胜感激。

谢谢!

有几种方法可以做到这一点。最简单的方法是将其分解为两行:

$server = Get-AzSqlServer -ResourceGroupName $resourceGroup -ServerName $sqlServer
$sqlserverfqdn = $server.FullyQualifiedDomainName
$sqlserverfqdn
#output databaserver.azure.net

这个命令很好,通常Powershell会在默认情况下尝试将JSON制作成一个对象,但偶尔通过管道连接到ConvertFrom-Json会将数据加载到一个可以通过操作的对象中

如果你需要清理一个字符串,那么替换方法通常会处理它:

$fqdn = '@{FullyQualifiedDomainName=databaserver.azure.net'
$sqlserverfqdn = $fqdn -replace "@{FullyQualifiedDomainName=",""

最新更新