Exchange Server的Powershell脚本:使用cmdlet删除电子邮件

时间:2011-07-29 15:26:26

标签: powershell exchange-server

我正在编写一个用于管理Exchange通讯组和公用文件夹的Powershell脚本。

在公用文件夹管理控制台中,我创建了一个Mail Enabled文件夹。在该文件夹的“属性”中,在“电子邮件地址”选项卡下,我想从列表中删除包含“Correspondence”的所有出现的电子邮件地址。

我的问题是,您如何使用Powershell从公用文件夹的属性中删除电子邮件地址?

如果你想看一段代码,请点击这里:

# create the new public folder

New-PublicFolder -Name $nextProjectName -Path "\Projets"

Add-PublicFolderClientPermission -Identity "\Projets\$nextProjectName"  -AccessRights CreateItems, ReadItems, CreateSubfolders, EditOwnedItems, FolderVisible, DeleteOwnedItems -User $nextProjectName

New-PublicFolder -Name "Correspondance" -Path "\Projets\$nextProjectName"

Enable-MailPublicFolder -Identity "\Projets\$nextProjectName\Correspondance"

$correspondanceAlias = $nextProjectCode.Substring(1,6)
Set-MailPublicFolder -Identity "\Projets\$nextProjectName\Correspondance" -Alias "bccp$correspondanceAlias" -DisplayName "bccp$correspondanceAlias"

这是截图,详细显示了我要删除的内容。两个SMTP地址和两个X400地址中的第二个。

screenshot01

3 个答案:

答案 0 :(得分:1)

未经测试,但我认为这应该有效:

 foreach ($mailpf in get-mailpublicfolder){
    $addrs = $mailpf.emailaddresses | 
      where {$_.proxyaddressstring -notmatch "smtp:.*correspondence.*"}
    set-mailpublicfolder $mailpf.identity -emailaddresses $addrs -whatif
    }

答案 1 :(得分:1)

我已经解决了这个问题。我所做的就是重复设置公用文件夹属性的cmdlet以添加电子邮件地址,因此错误的电子邮件地址永远不会出现。

$correspondanceAlias = $nextProjectCode.Substring(1,6)

Set-MailPublicFolder -Identity "\Projets\$nextProjectName\Correspondance" -Alias "bccp$correspondanceAlias" -DisplayName "bccp$correspondanceAlias"
Set-MailPublicFolder -Identity "\Projets\$nextProjectName\Correspondance" -EmailAddresses "bccp$correspondanceAlias@matricis.local", "bccp$correspondanceAlias@matricis.com"

答案 2 :(得分:0)

我认为以下链接可以帮助你。

Manage public folders

更多只需使用此link,您可以在其中找到与Exchange命令行管理程序命令相关的更多链接。