Search code examples
regexstringparsingpowershellconnection

Powershell regex for connectionStrings?


For some reason I'm having a brutal time parsing the connection string in the web.config file.

I've already gotten connectionString but I'm trying to get all the values such as the

  • Data Source
  • Initial Catalog
  • Username
  • etc...

The connection string looks like:

Data Source=db.sample.com;user id=sample-user;password=sample-password;Initial Catalog=sample-catalog;


Solution

  • Use System.Data.Common.DbConnectionStringBuilder

    $sb = New-Object System.Data.Common.DbConnectionStringBuilder
    
    # Attempting to set the ConnectionString property directly won't work, see below
    $sb.set_ConnectionString('Data Source=db.sample.com;user id=sample-user;password=sample-password;Initial Catalog=sample-catalog;')
    
    $sb
    

    Output:

    Key             Value          
    ---             -----          
    data source     db.sample.com  
    user id         sample-user    
    password        sample-password
    initial catalog sample-catalog 
    

    See also for more details: DbConnectionStringBuilder does not parse when used in PowerShell

    (That is why this funny syntax $sb.set_ConnectionString(...) is used instead of $sb.ConnectionString = ...).