powershell - Powershell 批量返回结果
问题描述
我有下面的 office365 命令,如果可能的话,我可以用一些指针来做。
$GetUsersIDs = Get-MsolUser | Where-Object {($_.licenses).AccountSkuId -match "STANDARDWOFFPACK_STUDENT"} | Select -ExpandProperty UserPrincipalName
Grant-CsUserPolicyPackage -identity $GetUsersIDs -PackageName "Education_PrimaryStudent_RemoteLearning"
我希望它返回前 10 个结果并运行一个命令,然后返回下一个 10 个结果并运行一个命令,依此类推。这背后的原因是由于 Microsoft 的限制,只允许您批量运行命令 X。
解决方案
您可以使用for
递增 10 的循环来执行此操作。由于您的用户列表将是一个集合,因此您可以使用索引和范围运算符的组合..
来批量输出。
$GetUsersIDs = Get-MsolUser | Where-Object {($_.licenses).AccountSkuId -match "STANDARDWOFFPACK_STUDENT"} |
Select -ExpandProperty UserPrincipalName
for ($i = 0; $i -lt $GetUsersIDs.Count; $i += 10) {
Grant-CsUserPolicyPackage -Identity $GetUsersIDs[$i..($i+9)] -PackageName "Education_PrimaryStudent_RemoteLearning"
}
请注意,Grant-CsUserPolicyPackage命令允许分批更新 20 个。
推荐阅读
- asp.net - SWAGGER 中未配置 RegionEndpoint 或 ServiceURL
- c - gcc 不编译 Visual Studio Code 中的任何其他库
- rust - 如何将值从一个枚举变体移动到另一个?
- c# - 模板 Xamarin.Forms Shell 应用程序中的 InvalidCastException
- api - Snapchat API 错误:出现错误 无效的 redirect_uri
- rust - `assert_eq!(a, b)` 和 `assert_eq!(a, b, )` 之间有区别吗?
- r - grepl ifelse 没有显示正确的值(R)
- javascript - 元素 ref 被指定为字符串 (wrappedInstance) 但未设置所有者。在 Netlify CMS 自定义小部件中连接到 Redux 存储
- firebase - Flutter - Firebase Auth + Firestore - 不同的查询结果
- typescript - 获取泛型容器名称