-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathexample.ps1
More file actions
53 lines (38 loc) · 4.59 KB
/
example.ps1
File metadata and controls
53 lines (38 loc) · 4.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import-module AzureDatalakeManagement
Connect-AzAccount -UseDeviceAuthentication
# Connect to Microsoft Graph (replaces Connect-AzureAD for PowerShell 7+ compatibility)
Connect-MgGraph -Scopes "User.Read.All", "Group.Read.All", "Application.Read.All"
$subName = '<subscriptionName>'
$rgName = 'resourceGroup01'
$storageAccountName = 'storage01'
$containerName = 'bronze'
#create basic dataset folder structure
add-DataLakeFolder -SubscriptionName $subName -resourceGroup $rgName -storageAccountName $storageAccountName -containerName $containerName -folderPath 'dataset1\sampleA'
add-DataLakeFolder -SubscriptionName $subName -resourceGroup $rgName -storageAccountName $storageAccountName -containerName $containerName -folderPath 'dataset1\sampleB\test1\subA\subB'
add-DataLakeFolder -SubscriptionName $subName -resourceGroup $rgName -storageAccountName $storageAccountName -containerName $containerName -folderPath 'dataset1\sampleC'
add-DataLakeFolder -SubscriptionName $subName -resourceGroup $rgName -storageAccountName $storageAccountName -containerName $containerName -folderPath 'dataset2'
add-DataLakeFolder -SubscriptionName $subName -resourceGroup $rgName -storageAccountName $storageAccountName -containerName $containerName -folderPath 'dataset3'
add-DataLakeFolder -SubscriptionName $subName -resourceGroup $rgName -storageAccountName $storageAccountName -containerName $containerName -folderPath 'dataset4'
#add duplicate folder in error
add-DataLakeFolder -SubscriptionName $subName -resourceGroup $rgName -storageAccountName $storageAccountName -containerName $containerName -folderPath 'dataset1\sampleA'
#add duplicate folder in error & show error
add-DataLakeFolder -SubscriptionName $subName -resourceGroup $rgName -storageAccountName $storageAccountName -containerName $containerName -folderPath 'dataset1\sampleA' -ErrorIfFolderExists
#Set user acl at the root of the dataset but don't set default scope
set-DataLakeFolderACL -SubscriptionName $subName -ResourceGroupName $rgName -StorageAccountName $storageAccountName -ContainerName $containerName -folderPath 'dataset1' -Identity 'sam@contoso.com' -accessControlType Read
#Set user acl at the root of the dataset and set default scope
set-DataLakeFolderACL -SubscriptionName $subName -ResourceGroupName $rgName -StorageAccountName $storageAccountName -ContainerName $containerName -folderPath 'dataset2' -Identity 'sam@contoso.com' -accessControlType Read -IncludeDefaultScope
#Set user acl at the root of the dataset and configure the container for access by the user
set-DataLakeFolderACL -SubscriptionName $subName -ResourceGroupName $rgName -StorageAccountName $storageAccountName -ContainerName $containerName -folderPath 'dataset3' -Identity 'bob@contoso.com' -accessControlType Write -IncludeDefaultScope -SetContainerACL
#set service acl at sub folder
set-DataLakeFolderACL -SubscriptionName $subName -ResourceGroupName $rgName -StorageAccountName $storageAccountName -ContainerName $containerName -folderPath 'dataset1\sampleB\test1' -Identity '<service identity>' -accessControlType Write -IncludeDefaultScope
#set group acl at root of dataset
set-DataLakeFolderACL -SubscriptionName $subName -ResourceGroupName $rgName -StorageAccountName $storageAccountName -ContainerName $containerName -folderPath 'dataset1' -Identity '<group1>' -accessControlType Read -IncludeDefaultScope
set-DataLakeFolderACL -SubscriptionName $subName -ResourceGroupName $rgName -StorageAccountName $storageAccountName -ContainerName $containerName -folderPath 'dataset2' -Identity '<group2>' -accessControlType Read -IncludeDefaultScope
#set acl with no recursion
set-DataLakeFolderACL -SubscriptionName $subName -ResourceGroupName $rgName -StorageAccountName $storageAccountName -ContainerName $containerName -folderPath 'dataset1\sampleB' -Identity '<group1>' -accessControlType Write -IncludeDefaultScope -DoNotApplyACLRecursively
#remove ACL from folder
remove-DataLakeFolderACL -SubscriptionName $subName -ResourceGroupName $rgName -StorageAccountName $storageAccountName -ContainerName $containerName -folderPath 'dataset3' -Identity 'bob@contoso.com'
#remove folder from specified container
remove-DataLakeFolder -SubscriptionName $subName -resourceGroup $rgName -storageAccountName $storageAccountName -containerName $containerName -folderPath 'dataset4'
#move sub folder from one dataset to another
move-DataLakeFolder -SubscriptionName $subName -resourceGroup $rgName -storageAccountName $storageAccountName -SourceContainerName $containerName -sourceFolderPath 'dataset1\sampleB' -DestinationContainerName $containerName -destinationFolderPath 'dataset2\sampleb'