4.4K
Las carpetas públicas de Microsoft Exchange son una característica que permite a los usuarios almacenar y compartir información con otras personas de su organización. Por lo general, se utilizan con fines de colaboración y archivado, proporcionando una ubicación centralizada para que los usuarios accedan y administren contenido compartido, como documentos, calendarios, contactos y mensajes de correo electrónico.
Al igual que un buzón de Exchange, puedes exportar carpetas públicas a PSTy discutiremos cómo hacerlo en este tutorial.
Requisitos
- Acceso a una organización de Exchange. Este tutorial utilizará Exchange Online pero también debería funcionar con Exchange Server 2016 y Exchange Server 2019.
- Una computadora Windows con Outlook 2016 o posterior.
- Se puede acceder a las carpetas públicas existentes en su cliente Outlook.
Listado de carpetas públicas y permisos de usuario
Saber qué carpeta pública exportar es una parte de la exportación de carpetas públicas de Exchange a PST. Otra es garantizar que el usuario que exportará la carpeta pública pueda acceder a ella.
Desde la perspectiva del usuario, tiene acceso a la carpeta pública si puede acceder a ella en Outlook. Pero para los administradores, es fundamental saber cómo enumerar las carpetas públicas y los permisos de los usuarios.
Las siguientes instrucciones suponen que ya tiene abierta una sesión de Exchange PowerShell, ya sea en línea o local.
Las carpetas públicas se encuentran dentro de buzones de carpetas públicas. Puede haber muchos buzones de carpetas públicas y también muchas carpetas públicas en cada uno.
Con el Centro de administración de Exchange, puede ver los buzones de correo de las carpetas públicas:
Y carpetas públicas.
Ejecute estos comandos en PowerShell para enumerar todos los buzones de correo de carpetas públicas y las carpetas públicas.
Get-Mailbox -PublicFolder -ResultSize Unlimited Get-PublicFolder -Recurse -ResultSize Unlimited | Select-Object Name, ParentPath, MailboxOwnerId
Para obtener permisos de carpetas públicas, el comando que desea es Obtener permiso de cliente de carpeta pública. Para enumerar los permisos para una carpeta pública, ejecute este comando:
Get-PublicFolderClientPermission -Identity <Public Folder>
Por ejemplo, para obtener permisos de ventas en Londres, Reino Unido:
Get-PublicFolderClientPermission -Identity '\UK London Sales'
Pero si desea obtener permisos para todas las carpetas públicas, hágalo así:
Get-PublicFolder -Recurse -ResultSize Unlimited | Get-PublicFolderClientPermission
Exportar carpeta pública a PST usando PowerShell
Puede exportar carpetas públicas a PST usando PowerShell, especialmente cuando desea automatizar el proceso. Esta automatización se puede lograr utilizando Espacio de nombres Microsoft.Office.Interop.Outlook.
Copie el código a continuación y guárdelo como Exportar-PublicFolder.ps1. También puedes descargar este script desde este Esencia.
[CmdletBinding()] param ( [Parameter(Mandatory)] [string] $PublicFolderPath, [Parameter(Mandatory)] [string] $PstFilePath ) ## Initialize the Outlook COM Object $Outlook = New-Object -ComObject Outlook.Application ## Compose the top public folder path <Public Folders - ACCOUNT_NAME\All Public Folders> $pfTopFolder = $Outlook.Session.Folders | Where-Object { $_.Name -like "Public Folders -*" } ## Append the specified $PublicFolderPath $PublicFolderPath = (($pfTopFolder.Name) + '\All Public Folders\' + $PublicFolderPath) Write-Verbose "Public Folder Parent = $PublicFolderPath" ## Split the folder path into levels $pfPath = $PublicFolderPath.Split('\') ## Initialize the public folder object to export. $PublicFolderToExport = $Outlook.Session.Folders.Item($pfPath[0]).Folders.Item($pfPath[1]) ## Append each public folder level for ($i = 2; $i -lt ($pfPath.count); $i++) { try { $PublicFolderToExport = $PublicFolderToExport.Folders.Item($pfPath[$i]) } catch { ## If the folder name does not exist, terminate the script. "The public folder path [$($PublicFolderPath)] does not exist." | Out-Default return $null } } Write-Verbose $($PublicFolderToExport.FullFolderPath) ## Create the PST export folder if it doesn't exist. $pstFolder = Split-Path $PstFilePath -Parent if (!(Test-Path $pstFolder)) { try { $null = New-Item -Type Directory -Path $pstFolder -ErrorAction Stop Write-Verbose "Output folder [$pstFolder] created." } catch { Write-Error "Failed to create the folder [$pstFolder]." Write-Error $_.Exception.Message return $null } } ## Initialize the PST store $namespace = $Outlook.GetNameSpace("MAPI") ## Attach the PST to the Outlook session $namespace.AddStore($PstFilePath) $pstOutlookStore = $namespace.Session.Folders.GetLast() Write-Verbose "PST [$PstFilePath] attached as [$($pstOutlookStore.Name)]." ## Start export. Write-Verbose "Start public folder export to [$PstFilePath]." [void]$PublicFolderToExport.CopyTo($pstOutlookStore) Write-Verbose "Start public folder export is finished." ## Detach PST from Outlook $namespace.RemoveStore($pstOutlookStore) Write-Verbose "PST [$PstFilePath] detached." $outlook.Application.quit()
Una vez que haya guardado el script, ejecútelo en PowerShell así:
.\Exportar-PublicFolder.ps1 `
-PublicFolderPath ‘Ventas de Liverpool en el Reino Unido’ `
-PstFilePath C:\PublicFolderExport\uk_liverpool_sales.pst `
-Verboso
- -Ruta de carpeta pública — Este parámetro acepta la ruta de la carpeta pública relativa al ‘Todas las carpetas públicas‘ nivel. Por ejemplo, ‘Ventas del Liverpool en el Reino Unido‘ se traduce como “Carpetas públicas:
\Todas las carpetas públicas\Ventas de Liverpool en el Reino Unido ‘ - Supongamos que el Ventas del Liverpool en el Reino Unido La carpeta pública tiene una subcarpeta llamada Comp&Ben; entonces puedes especificarlo como -PublicFolderPath ‘Ventas de Liverpool en el Reino Unido\Comp&Ben’.
- -PstFilePath — Este parámetro especifica el archivo PST de salida. Si esa ruta no existe, el script la creará. Si no se puede crear la carpeta, el script finalizará.
Tenga en cuenta que este script es básico y se puede mejorar. Por un lado, no admite la exportación de subcarpetas.
Conclusión
Exportar carpetas públicas a archivos PST es más o menos un proceso manual. Usar Outlook para exportar contenido de carpetas públicas es conveniente, pero puede resultar engorroso al exportar varias carpetas públicas.
Pero con alguna estrategia de secuencias de comandos de PowerShell, se puede automatizar con resultados consistentes y repetibles. ¡Buena suerte!