因此,在过去的几周中,我一直在研究一些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”,那么我应该很好地弄清楚这一点,有人能指出正确的方向吗?
答案 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
}