【问题标题】:O365 Powershell | Breaking up a long list into two sets of 100O365 电源外壳 |将一长串列表分成两组,每组 100 个
【发布时间】:2018-08-21 08:04:52
【问题描述】:

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

我希望此规则对来自组织外部的所有传入电子邮件附加警告,这些电子邮件的显示名称与我们的用户相同。

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

为了解决我拉了一个群,但是我还是超过了1000字左右。

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

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

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

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

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

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

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

【问题讨论】:

  • 好吧,我想我已经明白了:我可以做 $DisplayNames.Substring(0)[100..200]。据我了解,这会将所有值拉到 100 到 200 之间。这就是我所需要的。对不起这个问题!希望这对其他人有帮助。
  • 您也可以将变量通过管道传递到select-object -first 100select-object -last 99,只是要小心数学。或者你可能会重叠一些或错误选择一些

标签: powershell office365


【解决方案1】:

有很多方法可以做到这一点。我发现它非常可读。

我最喜欢的是这个:

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

如果你想显示 第三个​​ 子集,只需使用这种格式:

$ObjectListSplitted[3].Group

看看this solution already explained

请注意,其他语言能够对具有开始、停止和步骤的对象数组进行切片,如果您好奇,请查看here

【讨论】:

    猜你喜欢
    • 2020-07-27
    • 2021-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多