Files
Cloud-20Engineering/Powershell/Lists/Azure/AzureStorageBlobList.ps1
Jurjen Ladenius Effectory f61815b499 Merged PR 58470: Added scripts for listing blobs and storage tables
Added scripts for listing blobs and storage tables

Related work items: #106533
2025-04-08 07:58:09 +00:00

78 lines
2.9 KiB
PowerShell

param (
[string] $subscriptionId = "",
[string] $resourcegroupName = "",
[string] $storageAccountName = ""
)
if (("" -eq $subscriptionId) -or ("" -eq $resourcegroupName) -or ("" -eq $storageAccountName)) {
throw "Parameter(s) missing."
}
else {
Write-Host "Processing subscription [$subscriptionId], resource group [$resourcegroupName], storage account [$storageAccountName]"
}
# .\AzureStoragebloblist.ps1 -subscriptionId "7feeb150-9ee0-4aea-992a-5f3a89d933e6" -resourcegroupName "results-activity" -storageAccountName "effactivity"
# .\AzureStoragebloblist.ps1 -subscriptionId "7feeb150-9ee0-4aea-992a-5f3a89d933e6" -resourcegroupName "Results" -storageAccountName "myeffectoryresults"
# .\AzureStoragebloblist.ps1 -subscriptionId "a134faf1-7a89-4f2c-8389-06d00bd5e2a7" -resourcegroupName "Default-Storage-WestEurope" -storageAccountName "ecestore"
class BlobCheck {
[string] $SubscriptionId = ""
[string] $SubscriptionName = ""
[string] $ResourcegroupName = ""
[string] $StorageAccountName = ""
[string] $ContainerName = ""
[string] $BlobName = ""
[string] $LastModifiedDate = ""
}
[int] $maxCount = 100000
$containerToken = $null
$blobToken = $null
[string] $date = Get-Date -Format "yyyy-MM-dd HHmm"
$fileName = ".\$date - $storageAccountName - bloblist.csv"
$subscription = Set-AzContext -SubscriptionId $subscriptionId
$storageAccount = Get-AzStorageAccount -ResourceGroupName $resourcegroupName -Name $storageAccountName
do {
$containers = Get-AzStorageContainer -Context $storageAccount.Context -MaxCount $maxCount -ContinuationToken $containerToken
foreach ($container in $containers) {
do {
[BlobCheck[]]$Result = @()
$blobList = Get-AzStorageBlob -Container $Container.Name -Context $storageAccount.Context -MaxCount $maxCount -ContinuationToken $blobToken #-Prefix "projects"
if ($blobList.Length -le 0) {
Break;
}
foreach($blob in $blobList) {
[BlobCheck] $blobCheck = [BlobCheck]::new()
$blobCheck.SubscriptionId = $subscription.Subscription.Id
$blobCheck.SubscriptionName = $subscription.Subscription.Name
$blobCheck.ResourcegroupName = $resourcegroupName
$blobCheck.StorageAccountName = $storageAccountName
$blobCheck.ContainerName = $container.Name
$blobCheck.BlobName = $blob.Name
$blobCheck.LastModifiedDate = $blob.LastModified
$Result += $blobCheck
}
$Result | Export-Csv -Path $fileName -NoTypeInformation -Append
$blobToken = $blobList[$blobList.Count -1].ContinuationToken;
}
while ($null -ne $blobToken)
}
if ($containers.Length -le 0)
{
Break;
}
$containerToken = $containers[$containers.Count -1].ContinuationToken;
}
while ($null -ne $containerToken)