0

Azure Datalake gen2 のコマンドレットで制限を受けています。

https://docs.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-directory-file-acl-powershell

私はこのコマンドレットを使用しています:

Get-AzDataLakeGen2ChildItem -Context $ctx -FileSystem $filesystemName -Path $dirname -Recurse -FetchProperty

ルートからすべてのファイルとフォルダーの ACL を取得するには、5000 個のオブジェクトの制限があり、5000 個を超えるオブジェクトを含むフォルダーに対して実行すると、次のメッセージが表示されます。

ここに画像の説明を入力

基本的に、そのトークンを使用して、最後に抽出したものから続行できます(データレイクに何百万ものファイルがある可能性があるため、手動で行うのはクレイジーです)。

それを回避したり、何らかの方法でループしたりすることは可能ですか?

ここで私が使用しているスクリプト(正常に動作します。ルートからすべてのファイルのみをレポートするわけではありません):

    $dir = Get-AzDataLakeGen2ChildItem -Context $ctx -FileSystem "datalake" -Recurse -FetchProperty 


$FileOutdtk = "C:\Temp\file.csv"
Clear-Content $FileOutdtk

Add-Content $FileOutdtk ('"Path"^"IsDirectory"^"Owner"^"DisplayName Owner"^"Owner Permissions"^"Group"^"DefaultScope"^"AccessControlType"^"EntityId"^"DisplayName Gruppo"^"PermissionsACL"')


foreach ($directory in $dir) {  



           if($directory.IsDirectory -eq $true){
            if($directory.Owner -imatch "superuser"){


           foreach ($ACLs in $directory.ACL){


                    if($ACLs.EntityId -eq $null ){

                    Add-Content $FileOutdtk ('"' + $directory.Path + '^' + $directory.IsDirectory + '^' + $directory.Owner + '^' + "" +  '^' + $directory.Permissions.Owner + '^' + $directory.Group + '^' + $ACLs.DefaultScope + '^' + $ACLs.accesscontroltype + '^' + $ACLs.EntityId + '^' + "" + '^' + $ACLs.Permissions + '"')

                    }
                    else{
                    $GruppiEntityId = Get-AzureADGroup -ObjectId $ACLs.EntityId

                    Add-Content $FileOutdtk ('"' + $directory.Path + '^' + $directory.IsDirectory + '^' + $directory.Owner + '^' + "" + '^' + $directory.Permissions.Owner + '^' + $directory.Group + '^' + $ACLs.DefaultScope + '^' + $ACLs.accesscontroltype + '^' + $ACLs.EntityId + '^' + $GruppiEntityId.displayname + '^' + $ACLs.Permissions + '"')



             }

        }

そのコマンドレットをループして最大 5000 個のオブジェクトを取得するにはどうすればよいですか?

どうもありがとう

4

1 に答える 1