我的存储帐户命名约定必须在存储帐户名称的末尾有一个数字,例如storageaccount01
当我创建一个新帐户时,我需要确保不要复制任何存储名称。我不能在这个项目中使用uniqueid,它必须是上面的命名约定。
使用powershell获取订阅存储帐户的最佳方法是检查存储帐户的名称,然后在下一个可用编号上创建存储帐户。所以例如,如果我检索存储帐户的名称,并且我们有storageaccount01,storageaccount02,这意味着下一个可用的将是storageaccount03。这是最好的方法吗?
答案 0 :(得分:1)
Get-AzureRmStorageAccount
检索订阅的所有存储帐户Where-Object
cmdlet -replace
Measure-Object
cmdlet 示例:强>
$accountprefix = 'storageaccount'
$nextNumber = Get-AzureRmStorageAccount |
Where-Object {
$_.StorageAccountName.StartsWith($accountprefix)
} |
ForEach-Object {
$_.StorageAccountName -replace $accountprefix
} | Measure-Object -Maximum
$newAccountName = '{0}{1}' -f $accountprefix, ($nextNumber.Maximum +1).ToString("#00")
答案 1 :(得分:1)
您也可以使用
Get-AzureRmStorageAccountNameAvailability -Name 'ContosoStorage03'
检查存储帐户名ContosoStorage03
是否可用。
你可以做一个循环并写
$index = 0;
while($true)
{
$name="contoso$index";
$resp = Get-AzureRmStorageAccountNameAvailability -Name $name;
if($resp.NameAvailable) { break; }
$index++;
}
Write-Host "index: $index"