Powershell 如何将此字符串转换为JSON?

Powershell 如何将此字符串转换为JSON?,powershell,Powershell,所以我有下面的脚本返回服务器下数据库的连接字符串 Import-Module SqlServer #SSAS 1103 $oldAS = New-Object Microsoft.AnalysisServices.Server $oldAS.connect("server1") foreach ($db in $oldAS.Databases){ #$dbName = $db.Name Write-Host $db.Name -Fore green $db.DataSource

所以我有下面的脚本返回服务器下数据库的连接字符串

Import-Module SqlServer

#SSAS 1103 
$oldAS = New-Object Microsoft.AnalysisServices.Server
$oldAS.connect("server1")

foreach ($db in $oldAS.Databases){
  #$dbName = $db.Name
  Write-Host $db.Name -Fore green
  $db.DataSources | ForEach-Object{$_.ConnectionString}
}


#SSAS 1200-1400 
$AS = new-Object Microsoft.AnalysisServices.Tabular.Server
$AS.Connect("server1")

foreach ($dbt in $AS.Databases){
  $dbName = $dbt.Name
  $dbName
  $dbt.model.datasources[0].ConnectionString
}
第一个连接/命名空间用于兼容性级别1103 第二个连接/命名空间Microsoft.AnalysisServices.Tablear.Server用于db的1200-1400

然而,我们最近得到了1400个数据库,但它们的连接字符串格式完全不同。与传统的长连接字符串相比,该连接似乎是JSON格式的,即使从属性查看也是如此

i、 e

VS

图片中具有该格式数据源的任何数据库都不会显示回来

我认为它不会显示,因为字符串是类似于图中的JSON格式,而不是像这样的常规字符串格式:

User Id=;Data Source=;Persist Security Info=True
有没有办法将输出转换为JSON?也许那样它就能显示出来


这是typename表格结构数据源

Microsoft.AnalysisServices.Tablear.ConnectionAddress有一个.ToString甚至是tojson

$dbt.model.datasources[0].ConnectionDetails.ToString()
$dbt.model.datasources[0].Credential.ToString()

如果您将连接字符串通过管道传输到| ConvertTo JSON,那么输出会是什么样子?@trebleCode它只是在字符串的开头和结尾添加了引号。用户Id=;数据源=;Persist Security Info=True就是这样。对于JSON connect detail格式的其他数据库,它仍然没有显示。我想这一定是因为该属性名为ConnectionDetail,而我正在调用ConnectionString……但我没有看到任何类似的属性作为表格SSAS名称空间的一部分。如果您通过管道$dbt.model.datasources[0]获取成员,有哪些成员可用?还有其他相关的字符串道具吗?@trebleCode编辑了我的帖子,并包含了成员的图片。如果您将字符串拆分为分号并进行转换,它对您有用吗$a='用户Id=;数据源=;持久安全信息=True'$b=一美元分割“;”$json=$b |转换为json
$dbt.model.datasources[0].ConnectionDetails.ToString()
$dbt.model.datasources[0].Credential.ToString()