我如何验证某些存储帐户名称(作为输入)属于某个特定的预订
$storageAccountName = <something from input>
$storageAccountKey = <something from input>
$subscriptionName = "MySubscription"
$subscription = Get-AzureSubscription -SubscriptionName $subscriptionName
$StorageAccountContext = New-AzureStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey
现在呢?
我如何验证给定的存储帐户确实属于该特定订阅?
(如果我不想退出脚本,现在允许继续。)
答案 0 :(得分:1)
对我来说,答案是: 它位于哪个资源组中,然后位于哪个订阅中?
$sa = Get-AzureRmStorageAccount -Name <input storage account name>
$sa
StorageAccountName ResourceGroupName Location SkuName Kind AccessTier CreationTime ProvisioningState EnableHttpsTrafficOnly
------------------ ----------------- -------- ------- ---- ---------- ------------ ----------------- ----------------------
sa001 rg080 westeurope StandardLRS StorageV2 Hot 02/09/2019 15:16:15 Succeeded False
Get-AzureRmResourceGroup -Name $sa.ResourceGroupName -Location $sa.Location
ResourceGroupName : rg080
Location : westeurope
ProvisioningState : Succeeded
ResourceId : /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/rg080
从那时起,您将能够将resourceid与可以从
找到的subscriptionid进行匹配。get-azurermsubscription
类似的东西:
(Get-AzureRmResourceGroup -Name $sa.ResourceGroupName -Location $sa.Location).ResourceId.Split('/')[2] -like (Get-AzureRmSubscription | where name -like $subscriptionName).SubscriptionId
答案 1 :(得分:1)
根据我的测试,我们可以在一个订阅中获取所有存储帐户名称,然后确保这些名称是否包含您提供的名称。例如:
Connect-AzAccount
$SubscriptionName=""
$Subscription=Get-AzSubscription -SubscriptionName
Select-AzSubscription -Subscription $Subscription
#get all storage account name in the subscription
$name = Get-AzStorageAccount | Select-Object StorageAccountName
$StorageAccountName="test"
$value=$name.StorageAccountName.IndexOf($StorageAccountName)
if($value -ne -1) {
Write-Host " exist"
}else {
Write-Host "does not exist"
}