Freigeben über


Update-AzDataLakeGen2Item

Aktualisieren einer Datei oder eines Verzeichnisses für Eigenschaften, Metadaten, Berechtigungen, ACL und Besitzer.

Syntax

Update-AzDataLakeGen2Item
      [-FileSystem] <String>
      [-Path <String>]
      [-Permission <String>]
      [-Owner <String>]
      [-Group <String>]
      [-Property <Hashtable>]
      [-Metadata <Hashtable>]
      [-Acl <PSPathAccessControlEntry[]>]
      [-Context <IStorageContext>]
      [-DefaultProfile <IAzureContextContainer>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Update-AzDataLakeGen2Item
      -InputObject <AzureDataLakeGen2Item>
      [-Permission <String>]
      [-Owner <String>]
      [-Group <String>]
      [-Property <Hashtable>]
      [-Metadata <Hashtable>]
      [-Acl <PSPathAccessControlEntry[]>]
      [-Context <IStorageContext>]
      [-DefaultProfile <IAzureContextContainer>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Beschreibung

Das Cmdlet Update-AzDataLakeGen2Item aktualisiert eine Datei oder ein Verzeichnis für Eigenschaften, Metadaten, Berechtigungen, ACL und Besitzer. Dieses Cmdlet funktioniert nur, wenn hierarchische Namespace für das Speicherkonto aktiviert ist. Diese Art von Konto kann mit dem Cmdlet "New-AzStorageAccount" mit "-EnableHierarchicalNamespace $true" erstellt werden.

Beispiele

Beispiel 1: Erstellen eines ACL-Objekts mit 3 ACL-Eintrag und Aktualisieren von ACL auf alle Elemente in einem Dateisystem rekursiv

$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -Permission rwx 
$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType group -Permission rw- -InputObject $acl 
$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType other -Permission "rwt" -InputObject $acl
Get-AzDataLakeGen2ChildItem -FileSystem "filesystem1" -Recurse | Update-AzDataLakeGen2Item -ACL $acl

FileSystem Name: filesystem1

Path                 IsDirectory  Length          LastModified         Permissions  Owner                Group               
----                 -----------  ------          ------------         -----------  -----                -----               
dir1                 True                         2020-03-13 13:07:34Z rwxrw-rwt    $superuser           $superuser           
dir1/file1           False        1024            2020-03-23 09:29:18Z rwxrw-rwt    $superuser           $superuser          
dir2                 True                         2020-03-23 09:28:36Z rwxrw-rwt    $superuser           $superuser

Dieser Befehl erstellt zuerst ein ACL-Objekt mit 3 ACL-Eintrag (verwenden Sie den Parameter "-InputObject", um einem vorhandenen ACL-Objekt acl-Eintrag hinzuzufügen), und rufen dann alle Elemente in einem Dateisystem ab und aktualisieren Acl für die Elemente.

Beispiel 2: Aktualisieren aller Eigenschaften in einer Datei und Anzeigen dieser Eigenschaften

$file = Update-AzDataLakeGen2Item -FileSystem "filesystem1" -Path "dir1/file1" `
                 -Acl $acl `
                 -Property @{"ContentType" = "image/jpeg"; "ContentMD5" = "i727sP7HigloQDsqadNLHw=="; "ContentEncoding" = "UDF8"; "CacheControl" = "READ"; "ContentDisposition" = "True"; "ContentLanguage" = "EN-US"} `
                 -Metadata  @{"tag1" = "value1"; "tag2" = "value2" } `
                 -Permission rw-rw-rwx `
                 -Owner '$superuser' `
                 -Group '$superuser'

$file

   FileSystem Name: filesystem1

Path                 IsDirectory  Length          LastModified         Permissions  Owner                Group               
----                 -----------  ------          ------------         -----------  -----                -----               
dir1/file1           False        1024            2020-03-23 09:57:33Z rwxrw-rw-    $superuser           $superuser          

$file.ACL

DefaultScope AccessControlType EntityId Permissions
------------ ----------------- -------- -----------
False        User                       rwx        
False        Group                      rw-        
False        Other                      rw-        

$file.Permissions

Owner        : Execute, Write, Read
Group        : Write, Read
Other        : Write, Read
StickyBit    : False
ExtendedAcls : False

$file.Properties.Metadata

Key  Value 
---  ----- 
tag2 value2
tag1 value1

$file.Properties


LastModified          : 3/23/2020 9:57:33 AM +00:00
CreatedOn             : 3/23/2020 9:29:18 AM +00:00
Metadata              : {[tag2, value2], [tag1, value1]}
CopyCompletedOn       : 1/1/0001 12:00:00 AM +00:00
CopyStatusDescription : 
CopyId                : 
CopyProgress          : 
CopySource            : 
CopyStatus            : Pending
IsIncrementalCopy     : False
LeaseDuration         : Infinite
LeaseState            : Available
LeaseStatus           : Unlocked
ContentLength         : 1024
ContentType           : image/jpeg
ETag                  : "0x8D7CF109B9878CC"
ContentHash           : {139, 189, 187, 176...}
ContentEncoding       : UDF8
ContentDisposition    : True
ContentLanguage       : EN-US
CacheControl          : READ
AcceptRanges          : bytes
IsServerEncrypted     : True
EncryptionKeySha256   : 
AccessTier            : Cool
ArchiveStatus         : 
AccessTierChangedOn   : 1/1/0001 12:00:00 AM +00:00

Dieser Befehl aktualisiert alle Eigenschaften einer Datei (ACL, Berechtigung, Besitzer, Gruppe, Metadaten, Eigenschaft kann mit jeder Verbindung aktualisiert werden), und zeigen sie in der PowerShell-Konsole an.

Beispiel 3: Hinzufügen eines ACL-Eintrags zu einem Verzeichnis

## Get the origin ACL
$acl = (Get-AzDataLakeGen2Item -FileSystem "filesystem1" -Path 'dir1/dir3/').ACL

# Update permission of a new ACL entry (if ACL entry with same AccessControlType/EntityId/DefaultScope not exist, will add a new ACL entry, else update permission of existing ACL entry)
$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $id -Permission rw- -InputObject $acl  

# set the new acl to the directory
Update-AzDataLakeGen2Item -FileSystem "filesystem1" -Path 'dir1/dir3/' -ACL $acl

FileSystem Name: filesystem1

Path                 IsDirectory  Length          LastModified         Permissions  Owner                Group               
----                 -----------  ------          ------------         -----------  -----                -----               
dir1/dir3            True                         2020-03-23 09:34:31Z rwxrw-rw-+   $superuser           $superuser

Dieser Befehl ruft ACL aus einem Verzeichnis ab, aktualisiert/fügt einen ACL-Eintrag hinzu und setzt auf das Verzeichnis zurück. Wenn ein ACL-Eintrag mit demselben AccessControlType/EntityId/DefaultScope nicht vorhanden ist, wird ein neuer ACL-Eintrag hinzugefügt, andernfalls wird die Berechtigung eines vorhandenen ACL-Eintrags aktualisiert.

Parameter

-Acl

Legt POSIX-Zugriffssteuerungsrechte für Dateien und Verzeichnisse fest. Erstellen Sie dieses Objekt mit New-AzDataLakeGen2ItemAclObject.

Typ:PSPathAccessControlEntry[]
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Confirm

Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.

Typ:SwitchParameter
Aliase:cf
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Context

Azure Storage Context-Objekt

Typ:IStorageContext
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-DefaultProfile

Anmeldeinformationen, Konto, Mandant und Abonnement für die Kommunikation mit Azure

Typ:IAzureContextContainer
Aliase:AzureRmContext, AzureCredential
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-FileSystem

Dateisystemname

Typ:String
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-Group

Legt die besitzereigene Gruppe des Blobs fest.

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-InputObject

Zu aktualisierende Azure Datalake Gen2 Item-Objekt

Typ:AzureDataLakeGen2Item
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-Metadata

Gibt Metadaten für das Verzeichnis oder die Datei an.

Typ:Hashtable
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Owner

Legt den Besitzer des Blobs fest.

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Path

Der Pfad im angegebenen Dateisystem, das aktualisiert werden soll. Kann eine Datei oder ein Verzeichnis im Format 'directory/file.txt' oder 'directory1/directory2/' sein. Geben Sie diesen Parameter nicht an, um das Stammverzeichnis des Dateisystems zu aktualisieren.

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-Permission

Legt POSIX-Zugriffsberechtigungen für den Dateibesitzer, die Besitzergruppe der Datei und andere fest. Jeder Klasse kann Lese-, Schreib- oder Ausführungsberechtigungen erteilt werden. Symbolisch (rwxrw-rw-) wird unterstützt. Das klebige Bit wird ebenfalls unterstützt und wird entweder durch den Buchstaben t oder T am endgültigen Zeichenplatz dargestellt, je nachdem, ob das Ausführungsbit für die andere Kategorie festgelegt oder nicht festgelegt ist, das Fehlen von "t" oder "T" nicht festgelegt ist. In Verbindung mit ACL ungültig.

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Property

Gibt Eigenschaften für das Verzeichnis oder die Datei an. Die unterstützten Eigenschaften für die Datei sind: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType. Die unterstützten Eigenschaften für das Verzeichnis sind: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage.

Typ:Hashtable
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-WhatIf

Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.

Typ:SwitchParameter
Aliase:wi
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

Eingaben

String

AzureDataLakeGen2Item

IStorageContext

Ausgaben

AzureDataLakeGen2Item