当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 PowerShell 将用户添加到 Office 365 保留策略

作者:精品下载站 日期:2024-12-14 18:45:14 浏览:16 分类:玩电脑

使用 PowerShell 将用户添加到 Office 365 保留策略


要保留 Office 365 内容,您可以使用在安全与合规中心创建的保留策略。重要的一步是将用户添加到策略中。这可以使用 PowerShell 轻松完成。这样,我们还可以通过每天或每周运行一次脚本来自动将新用户添加到现有保留策略中。

在添加保留策略之前,我们首先要找到所有还没有保留策略的用户。因此,我们将通过 Exchange 获取所有用户的列表,并对他们应用策略。

通过使用 PowerShell,我们可以获得所有 Exchange 邮箱的列表,并获取保留策略中当前添加的所有 Exchange 位置(用户)的列表。这两个比较将产生一个丢失邮箱的列表,我们可以使用 Powershell 将其添加到保留策略中。

导入说明:首先连接到 Exchange Online,然后连接到安全与合规中心。否则,您将从 get-recipient 命令得到不同的结果。

连接到 Office 365 Exchange Online

使用下面的代码或我的 Microsoft Technet Gallery 上的此连接器脚本连接到 Exchange Online

$cred = get-credential $ExchSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $cred -Authentication Basic -AllowRedirection Import-PSSession $ExchSession

使用远程 PowerShell 连接到 Office 365 安全与合规中心

您可以使用以下命令或此脚本连接到安全与合规中心

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.compliance.protection.outlook.com/powershell-liveid/ -Credential $cred -Authentication Basic -AllowRedirection

Import-PSSession $Session

获取拥有邮箱的所有用户的列表

因此,首先我们首先创建要保留的所有邮箱的列表。通过 Get-Recipient,我们可以获得您组织中所有现有的收件人对象。为了比较列表,我们只需要 PrimarySmtpAddress。通过使用 select cmd,我们可以限制结果并仅选择我们需要的字段。

确保对结果进行排序,以便我们稍后进行比较。

$ExchUsers = Get-Recipient -ResultSize Unlimited -RecipientType UserMailbox | select PrimarySmtpAddress | sort-object PrimarySmtpAddress

如果您在组织中使用 SharePoint 或 OneDrive,您可能在 Office 365 中列出了一些外部用户。(在 Office 365 管理中心 > 来宾用户中检查)。您希望从结果中排除这些用户。我们可以根据 Alias 来过滤所有不包含 EXT 标记的结果:$_.Alias -notlike '#EXT#'.

我还有一些不需要添加的 .onmicrosoft.com 地址,请使用 $_.primarySmtpAddress -notlike '*.onmicrosoft.com' 排除它们

通过其中的两个 where 子句,您将得到以下命令:

$ExchUsers = Get-Recipient -ResultSize Unlimited -RecipientType UserMailbox | where {( $_.Alias -notlike '#EXT#' ) -and ( $_.primarySmtpAddress -notlike '*.onmicrosoft.com' )} | select PrimarySmtpAddress | sort-object PrimarySmtpAddress

获取保留策略中当前所有邮箱

要获取保留策略中当前存在的所有用户,我们首先必须查找策略的名称或 GUID。运行以下命令以获取具有名称和 GUID 的策略。 GUID 不是必需的,但使用 GUID 可能比脚本中的名称更容易。

Get-RetentionCompliancePolicy | select name,guid

这将返回一个包含 Office 365 租户中所有保留策略的表。

Get-RetentionCompliancePolicy -Identity <policy-name or guid> -DistributionDetail | Select -ExpandProperty ExchangeLocation

要获取已分配保留策略的所有邮箱,我们需要扩展 ExchangeLocation。这将为我们提供所有对象的列表,其中包含名称、电子邮件地址、资源类型等。为了比较列表,我们将根据名称(实际上是电子邮件地址)对结果进行排序:

$SecUsers = Get-RetentionCompliancePolicy -Identity <policy-name or guid> -DistributionDetail | Select -ExpandProperty ExchangeLocation | foreach {$_.Name} | sort-object $_.Name

比较两者并添加缺失的

剩下的就是比较两个阵列并将丢失的用户添加到保留策略中:

$notInSec = $exchUsers.primarySmtpAddress | Where {$secUsers -NotContains $_} foreach ($user in $notInSec){ Set-RetentionCompliancePolicy -Identity "<PolicyName>" -AddExchangeLocation $user }

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯