Я пытаюсь изменить путь к источнику данных подключения для MSSQL 2017.
Мой код:
$ServerName="localhost\olap17"
$loadInfo = [Reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices")
$server = New-Object Microsoft.AnalysisServices.Server
$server.connect($ServerName)
if ($server.name -eq $null) {
Write-Output ("Server '{0}' not found" -f $ServerName)
break
}
foreach ($dbase in $server.Databases )
{
Write-Output ( "Database: {0}; Status: {1}; Size: {2}MB; Data Sources: {3} " -f $dbase.Name, $dbase.State, ($dbase.EstimatedSize/1024/1024).ToString("#,##0"), $dbase.Model.DataSources.Count )
foreach ($dsource in $dbase.Model.DataSources)
{
$dsource.ConnectionDetails.Address.Path = $dsource.ConnectionDetails.Address.Path.Replace('OLDSERVER', 'NEWSERVER')
echo ">>> Datasource: " $dsource.ConnectionDetails.ToString()
}
}
Вывод отображается правильно, но когда я проверяю свойства соединения, я вижу путь без изменений:
Database: Billing Cycle Delivery; Status: Unprocessed; Size: 0MB; Data Sources: 5
Datasource:
{
"protocol": "file",
"address": {
"path": "\\\\NEWSERVER\\Telco\\Models\\Billing Cycle Delivery\\Data Sources\\Billing.xlsx"
},
"authentication": null,
"query": null
}
Похоже, новые свойства не передаются обратно на сервер ...
Где моя проблема? Я не могу найти какую-либо полезную информацию в Интернете: (
Любые идеи приветствуются!