powershell脚本来检查禁用的协议并提示修复

时间:2018-11-02 16:31:24

标签: powershell office365 exchange-server

因此,在过去的几周中,我一直在研究一些Powershell脚本。目前,我一直在使用get-CASmailbox。我正在尝试获取此脚本来检查activesync的状态以及任何禁用的协议(imap,pop,mapi等)的状态,并提示它在检测到任何禁用的情况下使用set-CASmailbox将其打开。

运行get-CASmailbox没问题,它会返回我要查找的确切信息,但是使用“ If”语句使该脚本正常工作有点麻烦。

想通了,我会点亮,然后弹出一个“ If ($actsync -eq "False") {Write-Host 'n'n "Activesync is disabled"}”消息。我可以稍后再使用set提示符,但是我一生都无法以“ False”的形式返回参数(至少到目前为止,这是我所收集的。)

我尝试使用以下方法提取布尔值,但未成功。

$actsync = (get-casmailbox $user).activesyncenabled

If ($actsync -eq "False") { Write-Host "Activesync is disabled" -ForegroundColor Red} 足够好,当启用activesync时,它只会写回“ Activesync已禁用”,即“ ActiveSyncEnabled = true”。如果$ actsync -eq为“ True”,我尝试过翻转但这没有提供结果

$actsync2 = (get-casmailbox $user | fl *ActiveSyncEnabled*)

然后是上述if语句

如果我至少能在禁用activesync时准确地写回“ activesync is disabled”,那么我应该很好地弄清楚这一点,有人能指出正确的方向吗?

1 个答案:

答案 0 :(得分:0)

查看文档(https://docs.microsoft.com/en-us/powershell/module/exchange/client-access/get-casmailbox?view=exchange-ps),该命令有一个-Filter选项。我的想法是做类似的事情

$arrayDisabledActiveSyncUsers = Get-CASMailbox -ResultSize unlimited -Filter {ActiveSyncEnabled -eq $false}

这将返回所有禁用了activesync的邮箱。然后,您可以像下面那样使用该列表来激活该选项:

foreach($mailbox in $arrayDisabledActiveSyncUsers) {
    Set-CASMailbox $mailbox -ActiveSyncEnabled $true
}