O365 Powershell |将长长的列表分成两组,每组100个

时间:2018-08-20 20:18:25

标签: powershell office365

我希望在Office 365中创建一个适用于我们组织中所有成员的规则。

我希望此规则在来自组织外部的所有与我们的用户具有相同显示名的电子邮件中添加警告。

当我尝试将其应用于组织中的所有用户时,我收到一条错误消息,指出该规则太长。

为了解决这一问题,我撤了一个小组,但我仍然超出限制约1000个字符。

我想创建两个变量,每个变量占该命令创建的列表的一半:

(Get-DistibutionGroupMember -Identity email@contoso.com -ResultSize Unlimited).DisplayName

我试图修改ResultSize参数,但是我需要的是同一列表中的结果1-100,然后是100-200。

该问题的另一个警告是列表不能是静态的。脚本每次运行时都必须更新。

有一个子字符串命令可用于我为AD制作内容时使用的特定用户名,但是我不知道有什么方法可以分解这样的列表。

如果有人有其他方法可以解决此问题,那么我将不提出任何建议。

感谢您抽出宝贵的时间阅读本文!

1 个答案:

答案 0 :(得分:0)

有很多方法可以做到这一点。我觉得它很可读。

我最喜欢的一个是这个:

$ObjectList = 1..1000 
$Step = 100 
$counter = [pscustomobject] @{ Value = 0 } 
$ObjectListSplitted = $ObjectList | Group-Object -Property { math]::Floor($counter.Value++ / $step) }

然后,如果要显示 third 子集,请使用以下格式:

$ObjectListSplitted[3].Group

看看MDN's what you should test

请注意,其他语言也可以用开始,停止和步骤来切片对象数组,如果您感到好奇,请看看this solution already explained