我正在尝试使用以下脚本获取数据库数据源的连接字符串:
$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,打印数据库8)
显然数据库属性正在工作。
-------------UPDATE:--------------
这是数据库在服务器中的外观
以下是以下每一行的作用:
$Analysis_Server.Databases
这打印出来
人们可以注意到的一件事是,由于某种原因,它们的打印顺序并不是如图所示在分析服务器上的顺序......我不知道为什么会出现这种情况
这是该命令打印出来的内容:
Analysis_Server.Databases[0]
现在既然索引 0 起作用了,我们应该能够索引[1], [2]
, etc...
所以下面的
Analysis_Server.Databases[1]
Analysis_Server.Databases[2]
prints:
现在到连接字符串:
$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]
prints:
我们应该能够对所有数据库做同样的事情
$Analysis_Server.Databases[1].DataSources[0]
$Analysis_Server.Databases[2].DataSources[0]
etc..
但什么也没有打印出来!