无法使用 powershell 启动 azure 数据库的无人值守导入

Can't start unattended import of azure database with powershell

我正在尝试使用 powershell.Since 开始导入 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".

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

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

要建立 SQL 服务器身份验证作为服务器连接上下文的一部分,您需要提供 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'

希望对您有所帮助!