正在尝试导入具有交换权限的 CSV,例如:
Folder,User,Permissions
Folder1,TheUser,PERM1 PERM2 PERM3 PERM4
我试图首先将这些值作为 CSV 的一个单独列导入。如何实现“权限”列的这一目标?
其次,尝试将这些权限应用于 Add-PublicFolderClientPermission
cmdlet。但是,我尝试导入 Perms,但收到一条错误消息,指出权限不是类型 Exchange 权限等
有人可以帮忙吗?
答案 0 :(得分:0)
我假设您的 CSV 具有文件夹身份、用户名和邮箱文件夹访问权限的有效条目:
# Import the csv and look at the first row:
$csv = Import-CSV C:\path\to\file.csv
$csv[0]|fl
Folder : \TestParent\TestChild
User : john.smith
Permissions : ReadItems CreateItems EditOwnedItems
您的示例没有文件夹 ID 所需的斜杠,因此请确保您确实可以解析 CSV 中的所有公共文件夹:
# Should not return any errors
$csv | Select -Unique -Expand Folder | %{Get-PublicFolder $_}
如果你在那里很好,那么试试这个:
Foreach ($Row in $CSV) {
# Convert the rights to an object we can use:
$Rights = $Row.Permissions -split ' ' | Foreach {
[Microsoft.Exchange.Management.StoreTasks.MailboxFolderAccessRight]::new($_)}
# Add rights entry to target folder
Get-PublicFolder $Row.Folder | Add-PublicFolderClientPermission -User $Row.User -AccessRights $Rights
}