来自 CSV 导入的多值数组 - 交换权限

时间:2021-06-03 23:37:49

标签: powershell exchange-server

正在尝试导入具有交换权限的 CSV,例如:

Folder,User,Permissions
Folder1,TheUser,PERM1 PERM2 PERM3 PERM4

我试图首先将这些值作为 CSV 的一个单独列导入。如何实现“权限”列的这一目标? 其次,尝试将这些权限应用于 Add-PublicFolderClientPermission cmdlet。但是,我尝试导入 Perms,但收到一条错误消息,指出权限不是类型 Exchange 权限等

有人可以帮忙吗?

1 个答案:

答案 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
}
相关问题