我需要在我们交换组织的每个邮箱中创建一些文件夹。
有没有使用 powershell 脚本快速实现此目的的方法?
(请注意,这是不是公用文件夹,这些文件夹必须存在于用户邮箱内)
答案1
您可以使用 Exchange Web 服务 (EWS) API 执行此操作。此脚本应该在邮箱中创建一个文件夹(我现在手边没有安装了 EWS 1.1 的 E2K10 机器,所以我从代码示例和内存中拼凑了这个,希望它真的能工作——它看起来不错)。这应该可以作为脚本的基础,用于遍历邮箱创建文件夹(但由于我是 PowerShell 的笨蛋,所以我把这个留给你了):
$MailboxName = "[email protected]"
$dllpath = "C:\Program Files\Microsoft\Exchange\Web Services\1.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)
该脚本假定您已安装 EWS 1.1,并使用有权访问主题邮箱的凭据登录。