使用Powershell快速检查Azure存储帐户文件共享已用容量的方法

时间:2019-04-17 13:14:59

标签: azure powershell

通过Storage Explorer检查存储帐户文件共享文件夹的文件数和容量太慢。 有没有更快速的方法来获取此信息?例如通过powershell?

2 个答案:

答案 0 :(得分:0)

下面的powershell代码应该可以工作

projectId: 'your-project-id'

答案 1 :(得分:0)

请使用以下代码(用PowerShell ISE编写):

$fileinfor =@{count=0;length=0}

function file_info()
{

$context = New-AzStorageContext -StorageAccountName your_storage_account_name -StorageAccountKey your_storage_account_key
$shares = Get-AzStorageShare -Context $context

foreach($share in $shares)
{
#get all the files and directories in a file share
$filesAndDirs = Get-AzStorageFile -ShareName $share.name -Context $context

foreach($f in $filesAndDirs)
{
if($f.gettype().name -eq "CloudFile")
{
Write-Output $f.name
$fileinfor["count"]++
$fileinfor["length"]=$fileinfor["length"]+$f.Properties.Length

}
elseif($f.gettype().name -eq "CloudFileDirectory")
{
list_subdir($f)
}
}

}
Write-Output ""
Write-Output "File total count: "$fileinfor["count"]
Write-Output "File total length: "$fileinfor["length"]

}


function list_subdir([Microsoft.WindowsAzure.Storage.File.CloudFileDirectory]$dirs)
{

$path = $dirs.Uri.PathAndQuery.Remove(0,($dirs.Uri.PathAndQuery.IndexOf('/',1)+1))
$filesAndDirs = Get-AzStorageFile -ShareName $dirs.share.name -Path $path -Context $context | Get-AzStorageFile
foreach($f in $filesAndDirs)
{
if($f.gettype().name -eq "CloudFile")
{
Write-Output $f.name
$fileinfor["count"]++
$fileinfor["length"]=$fileinfor["length"]+$f.Properties.Length

}
elseif($f.gettype().name -eq "CloudFileDirectory")
{
list_subdir($f)
}

}

}



file_info

测试结果:

enter image description here