我正在尝试使用以下脚本获取数据库数据源的连接字符串:
$Analysis_Server = New-Object Microsoft.AnalysisServices.Server
$Analysis_Server.connect("$server")
$database = $Analysis_Server.Databases[7]
$c = $database.DataSources[0].ConnectionString
$c
什么都没有输出。
我试过这样调试:
$Analysis_Server.Databases
这将打印出服务器上的所有数据库
如果我索引它$Analysis_Server.Databases[]
,它会打印索引的任何数据库(所以在我的情况下,7,打印 database8)
显然,数据库属性正在工作。
-------------更新:--------------
这是数据库在服务器中的外观
以下是以下每一行的作用:
$Analysis_Server.Databases
这打印出来
人们可以注意到的一件事是,由于某种原因,它们不是按照它们在分析服务器上的顺序打印出来的,如图所示……我不知道为什么会这样
这是这个命令打印出来的:
Analysis_Server.Databases[0]
现在由于 index 0 工作,我们应该能够 index[1], [2]
等...
所以以下
Analysis_Server.Databases[1]
Analysis_Server.Databases[2]
印刷:
现在到连接字符串:
$Analysis_Server.Databases[0].DataSources[0].ConnectionString
打印出来:
连接超时=60;用户 ID=someID;数据源=10.10.10.10;持久安全信息=True
它似乎是 Database8 的连接字符串
很酷,那么我们也应该能够做到这一点:
$Analysis_Server.Databases[1].DataSources[0].ConnectionString
但是,没有打印!似乎打印的唯一索引是Databases[0]
这是$Analysis_Server.Databases[0].DataSources[0]
打印的:
我们应该能够对所有数据库做同样的事情
$Analysis_Server.Databases[1].DataSources[0]
$Analysis_Server.Databases[2].DataSources[0]
ETC..
但什么都没有打印出来!