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

O365 Powershell |将一个长长的列表分成两组,每组100个,powershell,office365,Powershell,Office365,我希望在Office 365中创建一个适用于我们组织中所有成员的规则 我希望此规则在所有来自组织外部且显示名称与我们的用户相同的电子邮件上附加警告 当我试图将它应用到我们组织中的所有用户时,我得到一个错误,指出规则太长 为了解决这个问题,我拉了一个小组,但我还是超出了1000个字符的限制 我想创建两个变量,每个变量包含列表的一半,由以下命令创建: (Get-DistibutionGroupMember -Identity email@contoso.com -ResultSize Unlimit

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

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

当我试图将它应用到我们组织中的所有用户时,我得到一个错误,指出规则太长

为了解决这个问题,我拉了一个小组,但我还是超出了1000个字符的限制

我想创建两个变量,每个变量包含列表的一半,由以下命令创建:

(Get-DistibutionGroupMember -Identity email@contoso.com -ResultSize Unlimited).DisplayName
我试图修改ResultSize参数,但我需要的是同一列表中的结果1-100,然后是100-200

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

有一个子字符串命令,您可以在我为AD制作东西时使用的特定用户名上使用,但我不知道有什么方法可以分解这样的列表

如果有人有任何其他方法来解决这个问题,我将非常乐意接受任何建议


感谢您抽出时间阅读此文章

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

我最喜欢的是这个:

$ObjectList = 1..1000 
$Step = 100 
$counter = [pscustomobject] @{ Value = 0 } 
$ObjectListSplitted = $ObjectList | Group-Object -Property { math]::Floor($counter.Value++ / $step) }
如果要显示第三个子集,请使用以下格式:

$ObjectListSplitted[3].Group
看一看


值得注意的是,其他语言能够通过开始、停止和步骤分割一组对象,如果您好奇的话,请看一看

好的,我想我已经弄明白了:我可以做$DisplayNames.Substring(0)[100..200]。据我所知,所有值都在100到200之间。这就是我需要的。很抱歉问你这个问题!希望这对其他人有所帮助。您也可以将变量导入
select object-first 100
select object-last 99
中,但在数学上要小心。或者你可能会跑过头或者选错了一些