Обновление куба с помощью учетной записи автоматизации в Azure SSAS

В настоящее время я пытаюсь создать модуль 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 не распознается как имя командлета, функции,

файл сценария или работающая программа. Проверьте написание имени или, если путь был включен, убедитесь, что путь

исправьте и попробуйте еще раз.

Или этот скрипт:

$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 символа: 1

  • Invoke-ProcessASDatabase -databasename "MKTGCube" -server $ ServerName ...

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

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

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

Я думаю, что проблема связана с учетными данными, потому что нам нужно предоставить их для доступа к исходной базе данных, но у меня нет идей, как это сделать с помощью сценария PowerShell. Любая идея ?

Большое спасибо.


person Mathieu Ricour    schedule 27.03.2018    source источник
comment
Основная причина в том, что вы должны использовать Login-AzureASAccount для входа в систему, а не Add-AzureRmAccount, они разные. Смотрите мой ответ.   -  person Shui shengbao    schedule 27.03.2018


Ответы (1)


Вам необходимо импортировать модули Azure.AnalysisServices и SqlServer в свою учетную запись автоматизации.

Вы можете импортировать эти два модуля по этой ссылке и этой ссылка.

введите здесь описание изображения

Примечание: в вашем сценарии есть ошибка. Вы должны использовать 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"

Дополнительную информацию об этом см. В блог.

person Shui shengbao    schedule 27.03.2018
comment
Привет, спасибо за ответ. К сожалению, это не работает. Теперь у меня есть это сообщение об ошибке: Login-AzureASAccount: термин «Login-AzureASAccount» не распознается как имя командлета, функции, файла сценария или работающей программы. Проверьте написание имени или, если был включен путь, убедитесь, что путь правильный, и повторите попытку. - person Mathieu Ricour; 28.03.2018
comment
Вы импортируете модуль Azure.AnalysisServices? Вы можете использовать Add-AzureAnalysisServicesAccount для входа в систему. - person Shui shengbao; 28.03.2018
comment
См. Мой ответ на обновление, Login-AzureASAccount - это псевдоним для Add-AzureAnalysisServicesAccount, сначала вам нужен модуль импорта Azure.AnalysisServices, импортируйте модуль из этого powershellgallery.com/packages/Azure.AnalysisServices/0.5.0 - person Shui shengbao; 28.03.2018
comment
Я импортировал модуль, но ошибка всегда примерно Login-AzureASAccount или Add-AzureAnalysisServicesAccount - person Mathieu Ricour; 28.03.2018
comment
Вот ссылка на снимок экрана с моей реальной ошибкой: fr.tinypic .com / view.php? pic = 24vnvyu & s = 9 # .WruYMH_Lipo И ссылка на мой код: fr.tinypic.com/view.php?pic=6oolc9&s=9#.WruZC3_Lipo - person Mathieu Ricour; 28.03.2018
comment
@MatRic Вы должны использовать Connection AzureRunAsConnection, в другом вашем соединении в нем нет идентификатора приложения, поэтому вы получите журнал ошибок. - person Shui shengbao; 29.03.2018
comment
Давайте продолжим это обсуждение в чате. - person Shui shengbao; 29.03.2018