如果你像我一样,可能有大量脚本来管理 Microsoft 365 租户的不同部分。我通过在这些脚本运行后给自己发送一封电子邮件来监控这些脚本,然后我检查我的收件箱以确保它们成功运行。
随着基本身份验证在 Microsoft 365 中被弃用,你可能会在通过 PowerShell 脚本发送电子邮件时遇到问题。但这并不是微软在 PowerShell 中弃用 send-mailmessage 的唯一问题。
另一个问题是 MFA。也许您的组织需要对所有用户帐户进行 MFA。您不能期望每次希望脚本运行和发送电子邮件时都使用 MFA 登录!那太荒谬了。
幸运的是,我们并非别无选择。不过,还有一些设置要做。这是一个快速概述
- 在 Microsoft Entra 管理中心注册应用
- 分配权限以便应用可以发送电子邮件
- 在我们将发送电子邮件的计算机上创建一个自签名证书
- 将证书上传到我们的 Microsoft Entra 应用程序
- 安装 MG Graph PowerShell 模块
- 创建并运行脚本
所以让我们开始吧。
在 Microsoft Entra 管理中心注册应用正如我上面提到的,我们需要在 Microsoft Entra 中注册一个应用程序。
- 转到Microsoft Entra 管理中心> Applications > App registrations > New registration。
- 将名称设置为Allow sending emails然后单击Register。
接下来,我们需要授予我们的应用发送电子邮件的权限。
在您注册的应用程序中单击API 权限>添加权限> Microsoft Graph
现在我们需要跳转到发送电子邮件的计算机或服务器并创建一个自签名证书。
- 以管理员身份打开PowerShell 。
- 运行以下命令(将 gruber18.onmicrosoft.com 替换为您的租户):$Cert = New-SelfSignedCertificate -DnsName 'gruber18.onmicrosoft.com' -CertStoreLocation “Cert:\CurrentUser\My” -FriendlyName “Send_Emails” -KeySpec Signature - NotAfter(获取日期).AddYears(5)
- 运行以下命令:Get-ChildItem “Cert:\CurrentUser\my\$($Cert.Thumbprint)” | 导出证书-FilePath C:\graph.cer
接下来,我们会将证书上传到我们注册的 Microsoft Entra 应用程序。这样,Microsoft 就可以将我们上传的证书与我们将在发送电子邮件期间使用的证书进行比较。