无法使用PowerShell无人值守地导入azure数据库

时间:2015-03-26 08:27:40

标签: powershell azure azure-sql-database

我正在尝试使用powershell开始导入azure sql数据库。因为我希望在部署期间运行它我不能使用Get-Credential,因为我将获得一个登录提示。

Import-AzurePublishSettingsFile $publishSettingsFile
Set-AzureSubscription -SubscriptionName $subscriptionName -Certificate $certificate
Select-AzureSubscription -SubscriptionName $subscriptionName
$databaseContext = New-AzureSqlDatabaseServerContext -ServerName $serverName -UseSubscription
$storageContext = New-AzureStorageContext -StorageAccountName testdatabasebackups -StorageAccountKey $storageKey

Start-AzureSqlDatabaseImport -SqlConnectionContext $databaseContext -StorageContainer $storageContainer -DatabaseName $databaseName -BlobName $restoreFrom

当我到达Start-AzureSqlDatabaseImport时,我收到以下错误:

Start-AzureSqlDatabaseImport:无法绑定参数'SqlConnectionContext'。无法转换“Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Serve”类型的“Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Server.ServerDataServiceCertAuth”值 r.ServerDataServiceCertAuth“键入”Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Server.ISqlServerConnectionInformation“。

是否可以这样做,或者在使用Get-Credential时是否需要使用Start-AzureSqlDatabaseImport

1 个答案:

答案 0 :(得分:4)

要使用PowerShell Start-AzureSQLDatabaseImport,您需要使用Get-Credential通过SQL Server身份验证创建新的服务器上下文。 这是必需的原因是Import cmdlet需要SQL Server身份验证才能访问服务器。

要将SQL Server身份验证建立为服务器连接上下文的一部分,您需要提供PowerShell凭据。

安装最新版本的Azure PowerShell here,然后您可以尝试以下操作:

  1. Add-AzureAccount
  2. Set-AzureSubscription -SubscriptionName 'SubscriptionName'
  3. $Password = ConvertTo-SecureString 'MyPassowrd' -AsPlainText -Force
  4. $Cred = New-Object System.Management.Automation.PSCredential -ArgumentList 'LoginName', $Password
  5. $SqlCtx = New-AzureSqlDatabaseServerContext -ServerName 'ServerName' -Credential $cred
  6. $StorageCtx = New-AzureStorageContext -StorageAccountName 'StorageAccountName' -StorageAccountKey 'YourStorageKey'
  7. $Container = Get-AzureStorageContainer -Name 'ContainerName'
  8. $ImportRequest = Start-AzureSqlDatabaseImport -SqlConnectionContext $SqlCtx -StorageContainer $Container -BlobName 'BlobFileName'
  9. 希望这有帮助!