使用Azure SSAS中的自动化帐户进行多维数据集刷新

时间:2018-03-27 07:53:46

标签: powershell azure azure-powershell ssas-tabular azure-analysis-services

我目前正在尝试创建一个自动化Runbook来处理Azure中的多维数据集。我尝试了多个这样的PowerShell脚本:

$AzureCred = Get-AutomationPSCredential -Name "RefreshTest"
Add-AzureRmAccount -Credential $AzureCred | Out-Null
Invoke-ProcessASDatabase -databasename "MKTGCube" -server "AzureServerName" -RefreshType "Full" -Credential $AzureCred

出现这种错误(尽管我安装了SQLServer模块)。

  

Invoke-ProcessASDatabase:术语“Invoke-ProcessASDatabase”不是   被识别为cmdlet的名称,函数,

     

脚本文件或可操作程序。检查名称的拼写,或   如果包含路径,请验证路径是否为

     

正确并再试一次。

或者这个脚本:

$connectionName = "AzureRunAsConnection"
try
{
    # Get the connection "AzureRunAsConnection "
    $servicePrincipalConnection=Get-AutomationConnection -Name $connectionName         

    "Logging in to Azure..."
    Add-AzureRmAccount `
        -ServicePrincipal `
        -TenantId $servicePrincipalConnection.TenantId `
        -ApplicationId $servicePrincipalConnection.ApplicationId `
        -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint 
}
catch {
    if (!$servicePrincipalConnection)
    {
        $ErrorMessage = "Connection $connectionName not found."
        throw $ErrorMessage
    } else{
        Write-Error -Message $_.Exception
        throw $_.Exception
    }
}

##Getting the credential which we stored earlier.
$cred = Get-AutomationPSCredential -Name 'CredMat'

## Providing the Server Details
$ServerName = "AzureServerName"


Invoke-ProcessASDatabase -databasename "MKTGCube" -server $ServerName –ProcessType "ProcessFull" 

$error[0].Exception.Message
$error[0].Exception.StackTrace

出现该错误消息。

  

Invoke-ProcessASDatabase:身份验证失败:用户ID和密码   当用户界面不是

时需要      

可用的。

     

在行:32 char:1

     
      
  • Invoke-ProcessASDatabase -databasename“MKTGCube”-server $ ServerName ...

  •   
  • ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~

         
        
    • CategoryInfo:NotSpecified :( :) [Invoke-ProcessASDatabase],ArgumentException

    •   
    • FullyQualifiedErrorId:System.ArgumentException,Microsoft.AnalysisServices.PowerShell.Cmdlets.ProcessASDatabase

    •   
  •   

我认为问题与凭据有关,因为我们需要提供一些来访问源数据库,但我不知道如何通过PowerShell脚本来实现。有什么想法吗?

非常感谢。

1 个答案:

答案 0 :(得分:1)

您需要将导入模块Azure.AnalysisServicesSqlServer添加到自动化帐户。

您可以从此link和此link导入这两个模块。

enter image description here

注意:您的脚本中存在错误。您应该使用Login-AzureASAccount而不是Add-AzureRmAccount来登录,您可以使用以下示例:

$Conn = Get-AutomationConnection -Name AzureRunAsConnection 
Add-AzureAnalysisServicesAccount -RolloutEnvironment "southcentralus.asazure.windows.net" -ServicePrincipal -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint -TenantId $Conn.TenantID 
Invoke-ProcessTable -Server "asazure://southcentralus.asazure.windows.net/myserver" -TableName "MyTable" -Database "MyDb" -RefreshType "Full"

有关此问题的详情,请查看此blog