如何使用-ResultSize

时间:2018-10-19 08:08:59

标签: powershell office365 exchange-server

我必须批量提取100个Exchange邮箱(组织中共有1m +个邮箱)。
我正在使用以下powershell命令:
Get-Mailbox -ResultSize Unlimited
这给了我所有需要很长时间的邮箱。我可以批量处理100个结果,因此我点击了以下命令:Get-Mailbox -ResultSize 100
似乎工作正常,但我在如何带入下100个邮箱方面陷入困境。

PS:您可以假定邮箱是静态的,并且在不确定的时间内不会对其进行任何更改...

2 个答案:

答案 0 :(得分:0)

您可以获取拥有的所有用户,因此您可以使用计数获得特定的号码。

$Users = Get-Mailbox -ResultSize unlimited | select Name | Export-Csv C:\Setup\Users.csv -NoTypeInformation -Delimiter "|" -Encoding UTF8
($users).Count

您将有一个数字作为输出:

PS C:\Windows\system32> ($users).Count
421

现在,您知道可以将用户导出到csv并将csv拆分为多个csv文件,然后以循环方式导入它们以获得所需内容的确切编号。

例如

$s=0
$i=100
While ($i -le $number) {
$Users = (Get-Content C:\Setup\Users.csv)[$s .. $i]>c:\setup\Users_$i.csv
$s=$i++
$i=$i+100
}

之后,您可以从csv导入用户并运行您想要对他们进行的操作。

希望有帮助。

编辑,因为您不希望将这些内容输出到csv文件中。

$Users = Get-Mailbox -ResultSize unlimited | Select Name
$Users | Select-Object -First 100 -skip 0

这将为您提供前100条记录,然后通过跳过100条记录在-Skip 100上添加以获取接下来的100条记录。

答案 1 :(得分:0)

随着StefTheo的回复,您可以使用“ skip”参数来获取接下来的100个邮箱。

Get-Mailbox | Select-Object -Skip 100 -First 100 

Skip 100是从第100个开始的方法,您可以获得第100个邮箱来使用Skip 200

有关更多信息,请参考此链接:

PowerShell - Get-Mailbox ResultSize