PowerShell Exchange从OU排序中禁用OWA

时间:2013-03-26 14:26:39

标签: powershell powershell-v2.0 exchange-server-2010

我正在搜索特定的OU,然后为OU中的所有用户禁用OWA。这个脚本每天运行。

我有以下脚本正常工作,但正在更新OU中的所有用户。

$OU='OU=SomeOU,DC=Domain,DC=com'
$ext14='00254'
Get-Mailbox -OrganizationalUnit $OU| Where {$_.CustomAttribute14 -eq $ext14} | Set-CASMailbox -OWAEnabled:$false

我想只更新用户在此OU和子OU中将-OWAEnabled设置为$True(并更改为$ false)。这会减少我对Exchange的调用。 很遗憾,Set-CASMailbox似乎没有OUCustomAttribute属性可供查询。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

试试这个:

Get-CASMailbox -OrganizationalUnit $OU | ? {
  $_.CustomAttribute14 -eq $ext14 -and $_.OWAEnabled
} | % {
  Set-CASMailbox -Identity $_.Identity -OWAEnabled:$false
}

答案 1 :(得分:0)

CASMailbox对象没有OU或CustomAttribute属性,但Mailbox对象确实具有protocolsettings属性集合,因此:

$OU='OU=SomeOU,DC=Domain,DC=com'
$ext14='00254'
Get-Mailbox -OrganizationalUnit $OU|
Where {($_.CustomAttribute14 -eq $ext14) -and ($_.protocolsettings -match 'OWA.1'} |
Set-CASMailbox -OWAEnabled:$false