Megosztás a következőn keresztül:


Remove-AzDataLakeGen2AclRecursive

Távolítsa el rekurzívan az ACL-t a megadott útvonalon.

Syntax

Remove-AzDataLakeGen2AclRecursive
      [-FileSystem] <String>
      [[-Path] <String>]
      [-ContinuationToken <String>]
      -Acl <PSPathAccessControlEntry[]>
      [-ContinueOnFailure]
      [-BatchSize <Int32>]
      [-MaxBatchCount <Int32>]
      [-AsJob]
      [-Context <IStorageContext>]
      [-DefaultProfile <IAzureContextContainer>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Description

A Remove-AzDataLakeGen2AclRecursive parancsmag rekurzív módon távolítja el az ACL-t a megadott útvonalon. Az eredeti ACL-ben lévő ACL-bejegyzések, amelyek ugyanazt az AccessControlType, DefaultScope és EntityId típusú bemeneti ACL-bejegyzésekkel (akár eltérő engedélyekkel is) tartalmazzák, wil lbe el lettek távolítva.

Példák

1. példa: Az ACL rekurzív eltávolítása a fájlrendszer gyökér directiryjén

$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $id -Permission r-x -DefaultScope
$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $id -Permission r-x -InputObject $acl
Remove-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Acl $acl -Context $ctx
WARNING: To find the ACL Entry to remove, will only compare AccessControlType, DefaultScope and EntityId, will omit Permission.

FailedEntries                   : 
TotalDirectoriesSuccessfulCount : 7
TotalFilesSuccessfulCount       : 5
TotalFailureCount               : 0
ContinuationToken               :

Ez a parancs először létrehoz egy ACL-objektumot 2 acl-bejegyzéssel, majd rekurzív módon eltávolítja az ACL-t egy fájlrendszer gyökérkönyvtárából.

2. példa: Az ACL rekurzív eltávolítása egy könyvtárban

$result = Remove-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl  -Context $ctx
WARNING: To find the ACL Entry to remove, will only compare AccessControlType, DefaultScope and EntityId, will omit Permission.

$result

FailedEntries                   : {dir1/dir2/file4}
TotalDirectoriesSuccessfulCount : 500
TotalFilesSuccessfulCount       : 2500
TotalFailureCount               : 1
ContinuationToken               : VBaHi5TfyO2ai1wYTRhIL2FjbGNibjA2c3RmATAxRDVEN0UzRENFQzZCRTAvYWRsc3Rlc3QyATAxRDY2M0ZCQTZBN0JGQTkvZGlyMC9kaXIxL2ZpbGUzFgAAAA==

$result.FailedEntries

Name            IsDirectory ErrorMessage                                                                   
----            ----------- ------------                                                                   
dir0/dir2/file4       False This request is not authorized to perform this operation using this permission.

# user need fix the failed item , then can resume with ContinuationToken

$result = Remove-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -ContinuationToken $result.ContinuationToken -Context $ctx
WARNING: To find the ACL Entry to remove, will only compare AccessControlType, DefaultScope and EntityId, will omit Permission.

$result

FailedEntries                   : 
TotalDirectoriesSuccessfulCount : 100
TotalFilesSuccessfulCount       : 1000
TotalFailureCount               : 0
ContinuationToken               :

Ez a parancs először rekurzív módon eltávolítja az ACL-t egy könyvtárból, és sikertelen volt, majd a felhasználó által kijavított fájl kijavítása után folytassa a Folytatástokennel.

3. példa: Az ACL rekurzív adattömbök szerinti eltávolítása

$token = $null
$TotalDirectoriesSuccess = 0
$TotalFilesSuccess = 0
$totalFailure = 0
$FailedEntries = New-Object System.Collections.Generic.List[System.Object]
do
{
    $result = Remove-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl  -BatchSize 1000 -MaxBatchCount 50 -ContinuationToken $token -Context $ctx

    # echo $result
    $TotalFilesSuccess += $result.TotalFilesSuccessfulCount
    $TotalDirectoriesSuccess += $result.TotalDirectoriesSuccessfulCount
    $totalFailure += $result.TotalFailureCount
    $FailedEntries += $result.FailedEntries
    $token = $result.ContinuationToken
}while (($token -ne $null) -and ($result.TotalFailureCount -eq 0))
echo ""
echo "[Result Summary]"
echo "TotalDirectoriesSuccessfulCount: `t$($TotalDirectoriesSuccess)"
echo "TotalFilesSuccessfulCount: `t`t`t$($TotalFilesSuccess)"
echo "TotalFailureCount: `t`t`t`t`t$($totalFailure)"
echo "ContinuationToken: `t`t`t`t`t$($token)"
echo "FailedEntries:"$($FailedEntries | ft)

Ez a szkript az ACL rekurzív módon eltávolítja az ACL-t az adattömbök szerinti könyvtártömbön, és az adattömb mérete BatchSize * MaxBatchCount lesz. Ebben a szkriptben az adattömb mérete 50000.

4. példa: Távolítsa el az ACL rekurzív módon egy könyvtárat és a ContinueOnFailure-t, majd folytassa a hibákat egyenként

$result = Remove-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -ContinueOnFailure -Context $ctx

$result

FailedEntries                   : {dir0/dir1/file1, dir0/dir2/file4}
TotalDirectoriesSuccessfulCount : 100
TotalFilesSuccessfulCount       : 500
TotalFailureCount               : 2
ContinuationToken               : VBaHi5TfyO2ai1wYTRhIL2FjbGNibjA2c3RmATAxRDVEN0UzRENFQzZCRTAvYWRsc3Rlc3QyATAxRDY2M0ZCQTZBN0JGQTkvZGlyMC9kaXIxL2ZpbGUzFgAAAA==

$result.FailedEntries

Name            IsDirectory ErrorMessage                                                                   
----            ----------- ------------                                                                   
dir0/dir1/file1       False This request is not authorized to perform this operation using this permission.
dir0/dir2/file4       False This request is not authorized to perform this operation using this permission.

# user need fix the failed item , then can resume with ContinuationToken

foreach ($path in $result.FailedEntries.Name)
        {
            # user code to fix failed entry in $path
            
            #set ACL again
            Remove-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path $path -Acl $acl -Context $ctx
        }

Ez a parancs először rekurzív módon eltávolítja az ACL-t a ContinueOnFailure könyvtárból, és néhány elem sikertelen volt, majd egyenként folytatja a sikertelen elemeket.

Paraméterek

-Acl

A POSIX hozzáférés-vezérlési listája, amely rekurzívan be van állítva a fájlhoz vagy könyvtárhoz.

Típus:PSPathAccessControlEntry[]
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-AsJob

Parancsmag futtatása a háttérben

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-BatchSize

Ha az adathalmaz mérete meghaladja a köteg méretét, a művelet több kérelemre lesz felosztva, hogy nyomon lehessen követni az előrehaladást. A köteg méretének 1 és 2000 között kell lennie. Az alapértelmezett érték 2000.

Típus:Int32
Position:Named
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-Confirm

Jóváhagyást kér a parancsmag futtatása előtt.

Típus:SwitchParameter
Aliasok:cf
Position:Named
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-Context

Azure Storage környezeti objektum

Típus:IStorageContext
Position:Named
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:True
Helyettesítő karakterek elfogadása:False

-ContinuationToken

Folytatási jogkivonat.

Típus:String
Position:Named
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-ContinueOnFailure

Állítsa be ezt a paramétert úgy, hogy figyelmen kívül hagyja a hibákat, és folytassa a művelettel való beszerzést a címtár más alentitásainál. Alapértelmezés szerint a művelet a hibák észlelésekor gyorsan leáll.

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-DefaultProfile

Az Azure-ral való kommunikációhoz használt hitelesítő adatok, fiók, bérlő és előfizetés.

Típus:IAzureContextContainer
Aliasok:AzureRmContext, AzureCredential
Position:Named
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-FileSystem

Fájlrendszer neve

Típus:String
Position:0
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:True
Helyettesítő karakterek elfogadása:False

-MaxBatchCount

Az egyszeri hozzáférés-vezérlési művelet által végrehajtható kötegek maximális száma. Ha az adatkészlet mérete meghaladja a BatchSize maxBatchCount szorzását, a folytatási jogkivonatot a rendszer visszaadja.

Típus:Int32
Position:Named
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-Path

Az Acl rekurzív módosításához megadott fájlrendszer elérési útja. Fájl vagy könyvtár is lehet. "directory/file.txt" vagy "directory1/directory2/" formátumban. Ezt a paramétert hagyja ki úgy, hogy rekurzív módon módosítsa az Acl-t a fájlrendszer gyökérkönyvtárából.

Típus:String
Position:1
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:True
Helyettesítő karakterek elfogadása:False

-WhatIf

Bemutatja, mi történne a parancsmag futtatásakor. A parancsmag nem fut.

Típus:SwitchParameter
Aliasok:wi
Position:Named
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

Bevitelek

String

IStorageContext

Kimenetek

String