Я использую функцию ниже для выполнения моего файла xmla в экземпляре SSAS. $ Xmla - это файл, который создает базу данных. Когда я выполняю эту функцию, скрипт запускается, но ближе к концу он просто открывает этот файл $ Xmla и ничего не делает. Кроме того, на машине, на которой выполняется этот сценарий, не будет установлен SQL, поскольку он будет запущен на удаленном SSAS. Это был мой источник для этой функции: https://jorgecandeias.github.io/2013/12/24/how-to-execute-xmla-against-ssas-in-powershell/ Я что-нибудь упустил?
function Execute-Xmla
{
[CmdletBinding()]
param
(
[Parameter(Position=0, Mandatory=$True)] [string] $TargetServerName,
[Parameter(Position=1, Mandatory=$True, ValueFromPipeline=$True)] [string] $Xmla
)
begin
{
$ConnectionectionString = "Data Source=$TargetServerName;Provider=MSOLAP.4;Integrated Security=SSPI;Impersonation Level=Impersonate;"
$Connection = New-Object Microsoft.AnalysisServices.AdomdClient.AdomdConnection($ConnectionectionString)
$Connection.Open();
}
process
{
$Comand = $Connection.CreateCommand();
$Comand.CommandTimeout = 20000;
$Comand.CommandType = [System.Data.CommandType]::Text;
$Comand.CommandText = $Xmla;
$Reader = $Comand.ExecuteXmlReader();
if($Reader.Read())
{
$Return = $Reader.ReadOuterXml();
}
return $Return;
}
end
{
$Connection.Close();
$Connection.Dispose();
}
};