Вопрос или проблема
У меня есть почтовый аккаунт с сотнями папок, каждая из которых имеет несколько подкаталогов. Мне нужно изменить разрешения пользователя для всех этих папок/подкаталогов сразу. Есть ли способ это сделать?
Если вы используете Exchange на внутреннем сервере или сервере, к которому у вас есть доступ, вы можете ознакомиться с этой статьей. Она должна помочь вам в том, что вы хотите сделать.
Если вы используете Exchange на хостинговой платформе, вам нужно будет обратиться к вашему провайдеру, чтобы узнать, могут ли они предоставить вам доступ к их PowerShell.
ИЗ СТАТЬИ:
Используйте Add-MailboxFolderPermission для выполнения операций над корневой папкой и всеми ее подкаталогами с помощью следующих шагов:
- Получите список папок из почтового ящика
- Добавьте разрешение к папке
Сначала нам нужен список папок, к которым мы будем применять разрешения. Для этого используйте cmdlet Get-MailboxFolderStatistics. Мы хотим получить значение FolderPath, которое вернется в формате “/Folderpath”.
Get-MailboxFolderStatistics owner | Where { $_.FolderPath.Contains("FolderName") -eq $true }
Затем используйте cmdlet Add-MailboxFolderPermission для назначения разрешений. Формат для имени папки — “Mailbox:FolderPath”, поэтому нам нужно изменить результат предыдущей команды. Следующий пример показывает, как менеджер Джейн, Джон, хочет, чтобы она имела доступ к его папке Клиентов и всем подкаталогам:
ForEach($f in (Get-MailboxFolderStatistics John | Where { $_.FolderPath.Contains("/Clients") -eq $True } ) ) {
$fname = "John:" + $f.FolderPath.Replace("https://superuser.com/","\");
Add-MailboxFolderPermission $fname -User Jane -AccessRights Reviewer }
У меня был случай, когда у меня была папка с примерно 100 подкаталогами, для которых мне нужно было переназначить разрешения. Я нашел, что самый простой способ — создать новую папку с необходимыми разрешениями (например, если вы хотите, чтобы ваш помощник мог архивировать письма за вас), затем скопировать ранее существующую папку с 100 подкаталогами в эту папку. Старая папка и все подкаталоги унаследуют права, которые вы присвоили новой папке.
(Вы можете использовать тот же процесс, чтобы вернуть папку с 100 подкаталогами обратно в папку, из которой она изначально вышла, если хотите, но вам, возможно, придется подождать немного, пока произойдет вся перенастройка, если у вас много писем. Если файлы не появляются в ближайшее время, закройте и перезапустите Outlook.)
Я знаю, где мы находимся сейчас в 2024 году, но этот способ сработал для меня в почтовом ящике с более чем сотней папок и подкаталогов. Огромное спасибо!
.
Ответ или решение
Изменение прав доступа к нескольким папкам электронной почты в Outlook
Если у вас есть почтовый аккаунт с сотнями папок и подкаталогов, и вы хотите изменить права доступа ко всем этим папкам одновременно, это вполне выполнимая задача. Рассмотрим подробно, как это сделать, используя PowerShell, если у вас есть доступ к серверу Exchange.
Шаг 1: Подключение к Exchange с помощью PowerShell
Для начала вам необходимо подключиться к серверу Exchange с помощью PowerShell. Убедитесь, что у вас есть необходимые права для выполнения команд на сервере Exchange. Откройте консоль PowerShell и выполните следующую команду:
$UserCredential = Get-Credential
Connect-ExchangeOnline -Credential $UserCredential
Шаг 2: Получение списка папок
После подключения вам потребуется получить список папок и подкаталогов, к которым вы хотите изменить права доступа. Для этого воспользуйтесь командлетом Get-MailboxFolderStatistics
:
Get-MailboxFolderStatistics <Ваш_пользователь> | Where { $_.FolderPath.Contains("FolderName") -eq $true }
Замените <Ваш_пользователь>
на соответствующий адрес электронной почты. Данная команда вернет список всех папок, содержащих "FolderName", где вы можете указать нужное значение для фильтрации.
Шаг 3: Изменение прав доступа
Теперь, когда у вас есть список папок, вы можете изменить права доступа для каждой из них с помощью командлета Add-MailboxFolderPermission
. Для этого используйте следующий код:
ForEach($f in (Get-MailboxFolderStatistics <Ваш_пользователь> | Where { $_.FolderPath.Contains("/Clients") -eq $True } )) {
$fname = "<Ваш_пользователь>:" + $f.FolderPath.Replace("https://superuser.com/","\")
Add-MailboxFolderPermission $fname -User <Имя_пользователя> -AccessRights Reviewer
}
Альтернативный метод: Создание новой папки
Если у вас нет доступа к PowerShell, или процесс изменения прав доступа кажется вам слишком сложным, существует альтернатива, которая может оказаться более простой. Вы можете создать новую папку с нужными правами доступа и затем переместить старую папку с подкаталогами в новую. Таким образом, все подкаталоги унаследуют права новой папки.
- Создайте новую папку и назначьте ей необходимые права доступа.
- Переместите старую папку с подкаталогами в новую папку.
- При необходимости, верните старую папку обратно в ее изначальное местоположение.
Заключение
Изменение прав доступа к нескольким папкам в Outlook может быть выполнено эффективно с помощью PowerShell для пользователей Exchange. Если у вас нет доступа к PowerShell, создайте новую папку с нужными правами, и используйте метод перемещения. Это поможет вам сэкономить время и усилия в управлении доступом к вашим папкам электронной почты. Надеемся, данный алгоритм будет полезен в вашей работе.