使用 Powershell 从环境变量中读取连接字符串

Reading connection string from Environment variable using Powershell

我有 asp.net mvc 应用程序,其数据库连接字符串被放置在环境变量 DbConn 中作为

Min Pool Size=20;Application Name=***;**initial catalog=*****;server=***;Integrated Security=True;

现在我的问题是如何使用 Powershell 脚本读取此连接字符串。我知道如何读取整个连接字符串 Get-ChildItem Env:DBConn,但我需要它的一部分,例如初始目录、服务器等

请指导我解决这个问题。

您可以使用 -split, Trim() 和哈希表解析和标记连接字符串:

$DBConnValues = @{}
$env:DBConn.Trim(";") -split ";" |ForEach-Object { 
    $key,$value = $_ -split "="
    $DBConnValues[$key] = $value
}

现在您可以按名称访问每个 属性:

PS C:\> $DBConnValues["Server"]
ServerName

这将是 ConvertFrom-StringData 的完美案例,这样您就可以将其变成自定义对象。

$props = $env:DBConn -replace ";","`r`n" | ConvertFrom-StringData
$dbConn = New-Object -TypeName psobject -Property $props

ConvertFrom-StringData 想要一个字符串,其中每一行都是一个键值对。我们通过用换行符替换分号来实现这一点。它 returns 一个哈希表,我们将其提供给 New-object 以获取自定义 PowerShell 对象。然后您可以像在 PowerShell 中一样使用新对象。

$dbConn."Min Pool Size"