Оболочка службы автоматизации Azure

Я пытаюсь автоматизировать извлечение данных из базы данных Azure SQL из оболочки мощности Azure Automation Run Book. Я обнаружил, что модуль SQL Server отсутствует в модулях учетной записи автоматизации Azure. Я импортировал этот модуль. Но по-прежнему эта команда не работает.

Модуль сервера SQL был импортирован в журнал выполнения автоматизации Azure. Я прикрепил изображение модулей ниже. введите здесь описание изображения

Но когда я запускаю команду «Invoke-Sqlcmd» из панели тестирования книги запуска автоматизации Azure, она выдает ошибку, указанную ниже. https://imgur.com/xRzBQZe


person suhas paramesh    schedule 26.03.2018    source источник


Ответы (2)


Если я импортирую версию SqlServer по умолчанию (21.0.17224) из галереи модулей, я также могу воспроизвести упомянутую вами проблему.

Термин Invoke-Sqlcmd не распознается как имя командлета.

Попробуйте использовать SqlServer 21.0.17199, он правильно работает на моя сторона.

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

person Tom Sun - MSFT    schedule 26.03.2018
comment
Я хочу установить этот модуль из самой оболочки PowerShell для автоматизации Azure. Есть ли для этого способ? - person suhas paramesh; 26.03.2018
comment
Если вы нажмете кнопку, он будет перенаправлен на лазурный портал, после чего вы сможете установить его в учетную запись автоматизации. - person Tom Sun - MSFT; 26.03.2018
comment
Нет, я не хочу этого делать. Я хочу сделать это с помощью команды powershell. Это моя потребность, бутон - person suhas paramesh; 26.03.2018
comment
Не могли бы вы рассказать, почему вы не хотите этого делать? Это равнозначно импорту из галереи модулей. После импорта в систему автоматизации Azure вы можете использовать команду Invoke-Sqlcmd непосредственно из сценария Runbook. - person Tom Sun - MSFT; 26.03.2018
comment
Import-AzureRMAutomationRunbook -Name $ runBookName -Path $ scriptPath -ResourceGroupName $ resourceGroupName -AutomationAccountName $ automationAccountName -Type PowerShell Итак, я хочу, чтобы пользователь просто импортировал Runbook с помощью этой команды, и я запланировал запуск этого Runbook один раз в день. Я не хочу, чтобы пользователь перешел на этот сайт и щелкнул развертывание в своей учетной записи автоматизации для загрузки модулей. Он должен быть частью самого модуля Runbook. - person suhas paramesh; 26.03.2018
comment
По умолчанию Invoke-Sqlcmd не поддерживается в учетной записи автоматизации Azure. Если нам нужно использовать команду, мы могли бы импортировать ее из галереи модулей, после чего ее можно было бы использовать в любом скрипте под этой учетной записью автоматизации , нет необходимости устанавливать его для каждого запуска скрипта. Я упомянул еще один способ установить модули конкретной версии из галереи. - person Tom Sun - MSFT; 26.03.2018
comment
Спасибо, дружище :). Я нашел способ сделать это с помощью рабочего процесса PowerShell. - person suhas paramesh; 26.03.2018
comment
Рад слышать. Если вы выясните это другим способом, вы также можете добавить его в качестве ответа, который поможет большему количеству сообществ, у которых есть такая же проблема. - person Tom Sun - MSFT; 26.03.2018

Invoke-Sqlcmd не работал в оболочке модуля Runbook для автоматизации Azure PowerShell.

Поэтому я использовал рабочий процесс PowerShell для выполнения этого запроса. Он выполнен успешно. Приведенная ниже команда представляет собой модуль Runbook рабочего потока PowerShell, который подключается к базе данных и выполняет запрос.

workflow "runbookValue"
{
inlinescript
{
    $MasterDatabaseConnection = New-Object System.Data.SqlClient.SqlConnection
    $MasterDatabaseConnection.ConnectionString = "ConnectionStringValue"

    # Open connection to Master DB
    $MasterDatabaseConnection.Open()

    # Create command
    $MasterDatabaseCommand = New-Object System.Data.SqlClient.SqlCommand
    $MasterDatabaseCommand.Connection = $MasterDatabaseConnection
    $MasterDatabaseCommand.CommandText = "<execute the query>"

    # Execute the query
    $MasterDatabaseCommand.ExecuteNonQuery()

    # Close connection to Master DB
    $MasterDatabaseConnection.Close() 
}       
}
person suhas paramesh    schedule 29.03.2018