【发布时间】:2020-12-28 20:57:03
【问题描述】:
我正在尝试通过 PowerShell 在 Exchange Online 中启用经过身份验证的 SMTP。 我的尝试取得了半成功。
$Users = Get-CASMailbox -ResultSize unlimited$Users | where {$_.SmtpClientAuthenticationDisabled -eq $true} | Set-CASMailbox -SmtpClientAuthenticationDisabled $False
这导致大约 75% 的用户激活了 SMTP 身份验证。但奇怪的是不是全部。
$Users = Get-CASMailbox -ResultSize unlimited$Users | where {$_.SmtpClientAuthenticationDisabled -eq $true -or $null -or ""} | Set-CASMailbox -SmtpClientAuthenticationDisabled $False
显示相同的结果。 和以前一样:
$Users = Get-CASMailbox -ResultSize unlimited$Users | where {$_.ImapEnabled -eq $true} | Set-CASMailbox -SmtpClientAuthenticationDisabled $False
显然这与SmtpClientAuthenticationDisabled 的状态无关,因为我尝试了所有可能的状态并使用ImapEnabled -eq $true 作为每个用户的$true 条件。
我刚开始使用 PowerShell,并且只有一些基本的编程知识。现在必须为大约 80 个帐户更改此设置,但在一两周内,大约 4000 个帐户将与 AzureAD 同步,因此 Exchange Online。到目前为止,我还没有收到同步帐户的公司的答复,是否可以在同步发生时设置SmtpClientAuthenticationDisabled 的状态。我希望我必须自己做。
所有用户都拥有有效的 Office 365 许可证和有效的 Exchange Online 计划。
有没有人知道为什么只有大多数用户而不是所有用户都接受这个设置?
编辑:
在尝试执行您建议的脚本或尝试执行我自己的命令时,我遇到了 '$user' 返回 '$null' 的问题,我不明白。
Setting SmtpClientAuthenticationDisabled for failed, error: Cannot bind argument to parameter 'Identity' because it is null.
当我只执行这个时也会发生这种情况:
$Users = Get-CASMailbox -ResultSize Unlimited
foreach($user in $users) {Write-Host "$($user.DisplayName)"}
它什么也不返回。
我认为有些基本的东西我不明白。
如果我只列出 '$users' 的内容,PowerShell 会返回所有用户的列表以及相关设置,例如 'SmtpClientAuthenticationDisabled'。
【问题讨论】:
标签: powershell authentication exchange-server smtpclient