共用方式為


Update-AzDataLakeGen2Item

更新屬性、中繼資料、權限、ACL 和擁有者的檔案或目錄。

語法

ReceiveManual (預設值)

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>]

ItemPipeline

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

Description

Update-AzDataLakeGen2Item Cmdlet 會更新屬性、中繼資料、許可權、ACL 和擁有者的檔案或目錄。 只有在儲存體帳戶啟用階層式命名空間時,此 Cmdlet 才有效。 您可以透過執行 “New-AzStorageAccount” Cmdlet 搭配 “-EnableHierarchicalNamespace $true” 來建立這種帳戶。

範例

範例 1:建立具有 3 個 ACL 項目的 ACL 物件,並遞迴更新檔案系統中所有項目的 ACL

$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

此命令首先建立具有 3 個 acl 項目的 ACL 物件(使用 -InputObject 參數將 acl 項目新增至現有 acl 物件),然後取得檔案系統中的所有項目並更新項目上的 acl。

範例 2:更新檔案上的所有內容,並顯示它們

$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

此命令會更新檔案上的所有屬性 (ACL、許可權、擁有者、群組、中繼資料、屬性可以使用任何組合進行更新),並在 Powershell 主控台中顯示它們。

範例 3:將 ACL 項目新增至目錄

## 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

此命令從目錄獲取 ACL,更新/新增 ACL 項目,然後設定回目錄。 如果不存在具有相同 AccessControlType/EntityId/DefaultScope 的 ACL 項目,則會新增 ACL 項目,否則會更新現有 ACL 項目的權限。

參數

-Acl

設定檔案和目錄的POSIX存取控制權限。 使用 New-AzDataLakeGen2ItemAclObject 建立此物件。

參數屬性

類型:

PSPathAccessControlEntry[]

預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Confirm

在執行 Cmdlet 之前,提示您進行確認。

參數屬性

類型:SwitchParameter
預設值:None
支援萬用字元:False
不要顯示:False
別名:參見

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Context

Azure 儲存體內容物件

參數屬性

類型:IStorageContext
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:True
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-DefaultProfile

用於與 Azure 通訊的認證、帳戶、租用戶和訂用帳戶。

參數屬性

類型:IAzureContextContainer
預設值:None
支援萬用字元:False
不要顯示:False
別名:AzureRmContext, AzureCredential

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-FileSystem

檔案系統名稱

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ReceiveManual
Position:0
必要:True
來自管線的值:True
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Group

設定 Blob 的擁有群組。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-InputObject

要更新的 Azure Datalake Gen2 專案物件

參數屬性

類型:AzureDataLakeGen2Item
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ItemPipeline
Position:Named
必要:True
來自管線的值:True
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Metadata

指定目錄或檔案的中繼資料。

參數屬性

類型:Hashtable
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Owner

設定 Blob 的擁有者。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Path

指定檔案系統中應更新的路徑。 可以是檔案或目錄,格式為「directory/file.txt」或「directory1/directory2/」。 未指定此參數將更新檔案系統的根目錄。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ReceiveManual
Position:Named
必要:False
來自管線的值:True
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Permission

設定檔案擁有者、檔案擁有群組和其他人的 POSIX 存取權限。 每個類別都可以被授予讀取、寫入或執行權限。 支援符號 (rwxrw-rw-) 。 還支持粘性位,它在最終字符位置中由字母 t 或 T 表示,具體取決於其他類別的執行位是分別設置還是未設置,缺少 t 或 T 表示粘性位未設置。與 ACL 一起使用時無效。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Property

指定目錄或檔案的屬性。 檔案支援的屬性包括:CacheControl、ContentDisposition、ContentEncoding、ContentLanguage、ContentMD5、ContentType。 目錄支援的屬性包括:CacheControl、ContentDisposition、ContentEncoding、ContentLanguage。

參數屬性

類型:Hashtable
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-WhatIf

顯示 Cmdlet 執行時會發生什麼事。 指令未執行。

參數屬性

類型:SwitchParameter
預設值:None
支援萬用字元:False
不要顯示:False
別名:威斯康辛

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

CommonParameters

此 cmdlet 支援常見參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters

輸入

String

AzureDataLakeGen2Item

IStorageContext

輸出

AzureDataLakeGen2Item