具有“。”的数据库而不显示“ localhost”

时间:2019-03-27 17:08:42

标签: database powershell localhost

我正在尝试从特定实例获取所有ODBC连接。问题是某些ODBC连接设置为“。\ foo”,而另一些设置为“ localhost \ foo”。以我的理解,这应该是相同的,但我想事实并非如此。 在示例代码中,我无法定义将“。\ foo”和“ localhost \ foo”处理为相同的选项。

是否有一种方法可以获取全部信息,而不管是“。\ foo”还是“ localhost \ foo”?

Get-OdbcDsn -DsnType System -DriverName "SQL Server" | ? {
    ($_.Attribute["Server"] -eq "§\SQLServer2012")
}

§代表.localhost

1 个答案:

答案 0 :(得分:1)

使用2个比较:

Get-OdbcDsn -DsnType System -DriverName 'SQL Server' | ? {
    $_.Attribute['Server'] -eq '.\SQLServer2012' -or
    $_.Attribute['Server'] -eq 'localhost\SQLServer2012'
}

或使用正则表达式匹配来覆盖这两者:

Get-OdbcDsn -DsnType System -DriverName 'SQL Server' | ? {
    $_.Attribute['Server'] -match '^(\.|localhost)\\SQLServer2012$'
}