Tutoriales

Exportación de carpetas públicas de Exchange a archivos PST – 2xsoftware

Las carpetas públicas de Microsoft Exchange son una función 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 archivo, proporcionando una ubicación centralizada para que los usuarios accedan y administren contenido compartido, como documentos, calendarios, contactos y mensajes de correo electrónico.

Se pueden crear carpetas públicas para organizar los datos en una estructura jerárquica con varios niveles de carpetas y subcarpetas. A los usuarios se les pueden otorgar permisos específicos para acceder, editar o eliminar elementos dentro de estas carpetas, lo que permite una colaboración controlada y el intercambio de información dentro de la organización.

Al igual que un buzón de correo de Exchange, puede exportar carpetas públicas a PST, y 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 con Windows con Outlook 2016 o posterior.
  • Las carpetas públicas existentes son accesibles en su cliente de 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 asumen que ya tiene abierta una sesión de Exchange PowerShell, ya sea En línea o en las instalaciones.

Las carpetas públicas se encuentran dentro de los buzones de carpetas públicas. Puede haber muchos buzones de carpetas públicas y también muchas carpetas públicas en cada uno.

Mediante el Centro de administración de Exchange, puede ver los buzones de las carpetas públicas:

Y carpetas públicas.

exportar carpeta publica a pst powershell

Ejecute estos comandos en PowerShell para enumerar todos los buzones de carpetas públicas y las carpetas públicas.

Get-Mailbox -PublicFolder -ResultSize Unlimited 
Get-PublicFolder -Recurse -ResultSize Unlimited | Select-Object Name, ParentPath, MailboxOwnerId

powershell exportar carpeta pública a pst

Para obtener permisos de carpetas públicas, el comando que desea es Get-PublicFolderClientPermission. Para enumerar los permisos para una carpeta pública, ejecute este comando:

Get-PublicFolderClientPermission -Identity <Public Folder>

Por ejemplo, para obtener los permisos de ventas de Reino Unido en Londres:

Get-PublicFolderClientPermission -Identity 'UK London Sales'

intercambiar exportar carpeta pública a pst

Pero si desea obtener los permisos para todas las carpetas públicas, hágalo así:

Get-PublicFolder -Recurse -ResultSize Unlimited | Get-PublicFolderClientPermission

exportar carpetas publicas a pst powershell

Exportar carpeta pública a PST usando Outlook

No hay herramientas integradas para exportar el contenido de Carpetas públicas a archivos PST en Exchange Server o Exchange Online. El PowerShell New-MailboxExportRequest cmdlet no admite la exportación de contenido de carpetas públicas a PST.

La forma más popular y sencilla de exportar el contenido de una carpeta pública a un archivo PST es la función Importar/Exportar integrada en Outlook. Veamos cómo exportar el contenido de la carpeta pública al archivo PST usando Outlook.

  1. Abra Outlook y confirme que puede ver las carpetas públicas.
    exportar carpetas publicas a pst
  2. Hacer clic ArchivoAbrir y exportarImportación y exportación.
    intercambiar exportar carpeta pública a pst powershell
  3. En la ventana que se abre, seleccione “Exportar a un archivo” y haga clic Próximo.
    exportar carpeta publica
  4. Seleccionar «Archivo de datos de Outlook (.pst)” y haga clic Próximo.
    cómo compartir archivos pst al público
  5. Seleccione la carpeta pública que desea exportar y si desea incluir subcarpetas.
    Nota. No se recomienda exportar la carpeta pública de nivel superior con todas las subcarpetas a la vez. Si lo hace, puede bloquear Outlook y causar problemas de falta de espacio en disco en su computadora.
    carpeta pública powershell
  6. Especifique el nombre de archivo PST de destino y seleccione «Reemplazar duplicados con elementos exportados”. Hacer clic Finalizar. En este ejemplo, estoy exportando la carpeta pública a C:Liverpool Contabilidad.pst.
    exportar intercambio a pst
  7. Opcionalmente, agregue una contraseña para proteger el archivo PST. Si no desea agregar una contraseña, deje los campos de contraseña en blanco y haga clic en DE ACUERDO.
    exportar powershell pst
  8. Espere a que finalice la exportación.
    obtener carpeta pública powershell
  9. Confirme que el archivo PST exportado existe.
    intercambiar exportar pst

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 de Microsoft.Office.Interop.Outlook.

Copie el código de abajo y guárdelo como Exportar-PublicFolder.ps1. También puede 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_NAMEAll 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í:

.Export-PublicFolder.ps1 `
-PublicFolderPath ‘Reino Unido Liverpool Sales’ `
-PstFilePath C:PublicFolderExportuk_liverpool_sales.pst `
-Verboso

  • -PublicFolderPath — Este parámetro acepta la ruta de la carpeta pública relativa a ‘Todas las carpetas públicas‘ nivel. Por ejemplo, ‘Ventas de Liverpool en el Reino Unido‘ se traduce como «Carpetas públicas: Todas las carpetas públicasVentas de Liverpool en el Reino Unido
  • supongamos que Ventas de Liverpool en el Reino Unido carpeta pública tiene una subcarpeta llamada Compensación y beneficio; entonces puedes especificarlo como -PublicFolderPath ‘Reino Unido Liverpool SalesComp&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á.

intercambiar buzón de exportación a pst

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. El uso de 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!