使用Powershell从Environment变量读取连接字符串

时间:2015-10-21 21:17:33

标签: asp.net-mvc powershell environment-variables

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

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

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

请指导我解决这个问题。

2 个答案:

答案 0 :(得分:2)

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

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

现在您可以按名称访问每个媒体资源:

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

答案 1 :(得分:1)

这对ConvertFrom-StringData来说是一个完美的例子,这样你就可以把它变成一个自定义对象。

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

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

$dbConn."Min Pool Size"