Criação de pasta em massa de scripts no Exchange 2010

4

Eu preciso criar algumas pastas em todas as caixas de correio da nossa organização de troca.

Existe uma maneira rápida de conseguir isso com um script de powershell?

(note que esta não pasta pública, estas pastas devem existir dentro da caixa de correio dos usuários)

    
por Mark Henderson 02.12.2011 / 00:47

1 resposta

4

Você pode fazer isso com a API do Serviços Web do Exchange (EWS). Este script deve criar uma pasta em uma caixa de correio (eu não tenho uma máquina E2K10 com EWS 1.1 instalada à mão agora, então estou juntando tudo isso de amostras de código e memória e esperando realmente funciona-- parece certo). Isso deve funcionar como base para um script para iterar pelas caixas de correio que criam pastas (mas, como eu sou um burro do PowerShell, estou deixando isso para você):

$MailboxName = "[email protected]"

$dllpath = "C:\Program Files\Microsoft\Exchange\Web Services.0\Microsoft.Exchange.WebServices.dll"
[void][Reflection.Assembly]::LoadFile($dllpath)
$service = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2007_SP1)

$windowsIdentity = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$sidbind = "LDAP://<SID=" + $windowsIdentity.user.Value.ToString() + ">"
$aceuser = [ADSI]$sidbind

$service.AutodiscoverUrl($aceuser.mail.ToString())

$folderid = new-object  Microsoft.Exchange.WebServices.Data.FolderId([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Root, $MailboxName)
$RootFolder = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($service, $folderid)

$NewFolder = new-object Microsoft.Exchange.WebServices.Data.Folder($service)
$NewFolder.DisplayName = "Folder_to_Create"
$NewFolder.Save($RootFolder.Id.UniqueId)

Este script pressupõe que você tenha o EWS 1.1 instalado e esteja conectado com uma credencial que tenha permissão para acessar a caixa de correio do assunto.

    
por 02.12.2011 / 01:14