Powershell/SharePoint Online/New-SpoLibrary.ps1
2023-07-04 12:59:44 +02:00

54 lines
1.7 KiB
PowerShell

$creduser = Read-Host "Admin email"
$credpassword = Read-Host "Admin Password"
[securestring]$secStringPassword = ConvertTo-SecureString $credpassword -AsPlainText -Force
[pscredential]$credObject = New-Object System.Management.Automation.PSCredential ($creduser, $secStringPassword)
Connect-AzureAD -Credential $credObject
$SiteURL = "Site library URL"
$Library = "List Name"
Connect-PnPOnline -Url $SiteURL -UseWebLogin
$MemberGroup = Get-PnPGroup -Identity "Site de partage - Membres"
$CsvFolderList = Import-csv "SharePoint_Config_Sub.csv" -Delimiter ";" -Encoding UTF8
foreach ($folder in $CsvFolderList) {
$NewFolder = Add-PnPFolder -Name $folder.name -Folder $Library
$NewFolderUrl = Get-PnPFolder -Url ($Library + "/" + $NewFolder.name) -Includes ListItemAllFields.HasUniqueRoleAssignments
If ($NewFolderUrl.ListItemAllFields.HasUniqueRoleAssignments) {
Write-host "Folder is already with broken permissions!" -f Yellow
}
Else {
Write-Host $NewFolderUrl
$NewFolderUrl.ListItemAllFields.BreakRoleInheritance($True, $True)
Invoke-PnPQuery
Write-host "Folder's Permission Inheritance is broken!!" -f Green
}
}
foreach ($folder in $CsvFolderList) {
$ADgroupname = (Get-AzureADGroup | where { $_.displayname -eq $folder.Group } ).objectid
$SpFolder = Get-PnPFolder -Url ("/sites/partage" + $Library + "/" + $folder.name)
Set-PnPListItemPermission -List $Library -Identity ($folder.ListItemAllFields) -Group $MemberGroup -RemoveRole 'Lecture'
Set-PnPfolderPermission -list $Library -identity $SpFolder -user "c:0t.c|tenant|$ADGroupName" -AddRole 'Collaboration'
}
foreach ($folder in $CsvFolderList) {
Add-PnPFolder -Name $folder.name -Folder ($Library + "/" + $folder.parent)
}