次の方法で共有


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

入力

String

AzureDataLakeGen2Item

IStorageContext

出力

AzureDataLakeGen2Item