2013-03-26 115 views
0

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

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

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

我想只更新用户是-OWAEnabled设置为$True(和更改为$ false)在这个OU和子OU中。这会减少我对Exchange的呼叫。 不幸的是,Set-CASMailbox似乎没有OUCustomAttribute属性进行查询。

有什么建议?

回答

0

的CASMailbox对象不具有OU或CustomAttribute性质,但邮箱对象确实有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 
+0

辉煌。完善。非常感谢 – GreetRufus 2013-03-26 15:26:36

+0

我不知道是否有类似的-MAPIBlockOutlookRpcHttp? – GreetRufus 2013-03-26 15:31:03

+0

是的,找到了。 MAPI.0优秀! – GreetRufus 2013-03-26 15:39:26

0

试试这个:

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