次のスクリプトを使用して、データベース データソースの接続文字列を取得しようとしています。
$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が出力されます)
明らかに Database プロパティが機能しています。
-------------更新:--------------
サーバーでのデータベースの外観は次のとおりです
次の各行の機能は次のとおりです。
$Analysis_Server.Databases
これが出力されます
気づくことができることの1つは、何らかの理由で、写真のように分析サーバー上にある順序ではなく、印刷されていることです...なぜそうなのかわかりません
これは、このコマンドが出力するものです。
Analysis_Server.Databases[0]
インデックス 0 が機能したので、インデックス[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]
等..
しかし、何も印刷されません!