我必须批量提取100个Exchange邮箱(组织中共有1m +个邮箱)。
我正在使用以下powershell命令:
Get-Mailbox -ResultSize Unlimited
这给了我所有需要很长时间的邮箱。我可以批量处理100个结果,因此我点击了以下命令:Get-Mailbox -ResultSize 100
。
似乎工作正常,但我在如何带入下100个邮箱方面陷入困境。
PS:您可以假定邮箱是静态的,并且在不确定的时间内不会对其进行任何更改...
答案 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
有关更多信息,请参考此链接: