Update-AzDataLakeGen2Item
プロパティ、メタデータ、アクセス許可、ACL、所有者のファイルまたはディレクトリを更新します。
構文
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>]
説明
Update-AzDataLakeGen2Item コマンドレットは、プロパティ、メタデータ、アクセス許可、ACL、所有者に関するファイルまたはディレクトリを更新します。 このコマンドレットは、ストレージ アカウントに対して階層型名前空間が有効になっている場合にのみ機能します。 この種類のアカウントは、"-EnableHierarchicalNamespace $true" を使用して "New-AzStorageAccount" コマンドレットを実行することで作成できます。
例
例 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
このコマンドは、最初に ACL エントリが 3 つの 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[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Confirm
コマンドレットの実行前に確認を求めるメッセージが表示されます。
型: | SwitchParameter |
Aliases: | cf |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Context
Azure Storage Context オブジェクト
型: | IStorageContext |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-DefaultProfile
Azure との通信のために使用される資格情報、アカウント、テナント、サブスクリプションです。
型: | IAzureContextContainer |
Aliases: | AzureRmContext, AzureCredential |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-FileSystem
FileSystem 名
型: | String |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Group
BLOB の所有グループを設定します。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-InputObject
更新する Azure Datalake Gen2 項目オブジェクト
型: | AzureDataLakeGen2Item |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Metadata
ディレクトリまたはファイルのメタデータを指定します。
型: | Hashtable |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Owner
BLOB の所有者を設定します。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Path
更新する必要がある指定されたファイルシステム内のパス。 'directory/file.txt' または 'directory1/directory2/' の形式のファイルまたはディレクトリを指定できます。 このパラメーターを指定しないと、ファイルシステムのルート ディレクトリが更新されます。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Permission
ファイル所有者、ファイル所有グループなどの POSIX アクセス許可を設定します。 各クラスには、読み取り、書き込み、または実行のアクセス許可を付与できます。 シンボリック (rwxrw-rw-) がサポートされています。 スティッキー ビットもサポートされ、他のカテゴリの実行ビットがそれぞれ設定されているか未設定であるかに応じて、最後の文字位置の文字 t または T で表されます。t または T がない場合は、スティッキー ビットが設定されていないことを示します。ACL と組み合わせて無効です。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Property
ディレクトリまたはファイルのプロパティを指定します。 ファイルでサポートされているプロパティは、CacheControl、ContentDisposition、ContentEncoding、ContentLanguage、ContentMD5、ContentType です。 ディレクトリでサポートされているプロパティは、CacheControl、ContentDisposition、ContentEncoding、ContentLanguage です。
型: | Hashtable |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-WhatIf
コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。
型: | SwitchParameter |
Aliases: | wi |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
出力
Azure PowerShell