如何在 New-AzSqlSyncMember 中设置 -DefaultProfile(IAzureContextContainer 类型)的值

dea*_*ace 3 azure azure-data-sync azure-powershell azure-sql-database

我正在尝试创建一个 powershell 脚本来在 2 个 azure SQL 数据库之间创建 azure 数据同步。我的会员数据库位于另一个订阅上。

我需要设置 -DefaultProfile,其类型为“New-AzSqlSyncMember”命令。我不知道设置此参数的语法。

我当前没有 -DefaultProfile 的脚本如下所示:

New-AzSqlSyncMember -ResourceGroupName $resourceGroupName `
                    -ServerName $serverName `
                    -DatabaseName $databaseName `
                    -SyncGroupName $syncGroupName `
                    -Name $syncMemberName `
                    -MemberDatabaseType $memberDatabaseType `
                    -SyncDirection $syncDirection
Run Code Online (Sandbox Code Playgroud)

我想使用 powershell 设置订阅字段的值,如下图所示使用 powershell:

设置数据同步会员订阅

Sam*_*ucy 5

可能来自https://social.msdn.microsoft.com/Forums/en-US/4ad3dd3e-314a-4442-957f-da77c17ef85b/how-to-set-value-of-defaultprofile-of-type-iazurecontextcontainer-的交叉帖子in-newazsqlsyncmember?forum=azurescripting&prof=required

您希望Connect-AzAccount使用要在参数中使用的帐户的凭据进行调用-DefaultProfile,并将其存储在变量中。您可以使用该变量来设置参数:

$DefaultProfile = Connect-AzAccount <params> -SubscriptionId $SubscriptionId

New-AzSqlSyncMember <params> -DefaultContext $DefaultProfile
Run Code Online (Sandbox Code Playgroud)

如果这引发了无法从 a 转换PSAzureContext为 a 的类型错误IAzureContextContainer,则有一个可用的显式转换器

$DefaultProfile = Connect-AzAccount <params> -SubscriptionId $SubscriptionId

$Converter =  New-Object -TypeName Microsoft.Azure.Commands.Profile.Models.AzureContextConverter
$Container =  $converter.ConvertFrom($DefaultProfile, [Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer], $null, $true)

New-AzSqlSyncMember <params> -DefaultContext $Container
Run Code Online (Sandbox Code Playgroud)