在一个Azure存储帐户中获取容器列表,并在另一个存储帐户中创建容器列表

时间:2018-08-09 18:21:25

标签: azure powershell azure-storage

团队,

预先感谢,我是IT专业人员,同时也在学习PowerShell。我在不同的差异区域中有2个存储帐户Storage A和Storage B,我想在辅助存储帐户中创建相同的容器。

我发现以下命令可以获取主存储帐户中所有容器的列表,然后可以使用foreach循环在辅助存储上创建容器。但是我想确保在辅助存储帐户中,如果它已经具有容器名称,那么我的命令应该跳过该容器并继续创建下一个存储容器。

Get-AzureStorageContainer -Context $storageAccountContext | ForEach-object { New-AzureStorageContainer -Name $_.Name -Context $Destinationcontext }

2 个答案:

答案 0 :(得分:0)

希望这会有所帮助!

$storageAccountContext ="Storage_Account_A"
$Destinationcontext ="Storage_Account_B"

$Vm_in_A =@(Get-AzureStorageContainer -Context $storageAccountContext )
$Vm_in_b =@(Get-AzureStorageContainer -Context $Destinationcontext)
$Vm_to_be_created =@(Compare-Object -ReferenceObject $Vm_in_A -DifferenceObject $Vm_in_b )
$Vm_to_be_created|Select-object -Property VM| ForEach-object { New-AzureStorageContainer -Name $_.Name -Context $Destinationcontext }

答案 1 :(得分:0)

对于我们从pipe(|)获取的值,“ VM”是对“ -Property”开关的错误参数。 请使用属性的正确名称。我上面仅以“ VM”为例。 VM是Esxi(VC)环境中的属性。

请运行以下命令并检查输出。

Get-AzureStorageContainer -Context $Destinationcontext

它应该给您输出类似以下内容: Property_ID Property_NAME Property_3


值1 Value_A值_1A 值2值_B值_2A

因此,现在正确的语法应该是:

$Vm_to_be_created|Select-object -Property "Property_ID"| ForEach-object { New-AzureStorageContainer -Name $_.Name -Context $Destinationcontext }

:)