这是我的第一篇文章;我对Powershell很陌生。
应客户要求,我正在更改其 Exchange 365 中所有用户的日历访问权限。 我使用在 Spiceworks 上找到的代码将所有邮箱的默认值设置为"审阅者":
$users = get-mailbox
foreach ($user in $users) {set-mailboxfolderpermission -identity $($user.alias):calendar" -User Default -AccessRights Reviewer -confirm:$false}
我能够使用我从上面炮制的脚本从指定邮箱中删除所有其他用户的权限:
$users = get-mailbox
foreach ($user in $users) {Write-host -foregroundcolor green "Removing permission for $($user.alias)..."
remove-mailboxfolderpermission -identity username:calendar -user $user.alias -confirm:$false}
我希望弄清楚如何在一个命令中删除所有邮箱的所有显式权限以供将来使用;我认为这将涉及嵌套的 foreach 语句,但我正在努力使双循环正确。
它需要运行如下内容:
$users = 获取邮箱
foreach $user {remove-mailboxfolderpermission -identityuser1.alias:\calendar -user$user 1.alias}
foreach $user {remove-mailboxfolderpermission -identityuser1.alias:\calendar -user$user 2.alias}
foreach $user {remove-mailboxfolderpermission -identityuser1.alias:\calendar -user$user 3.alias}
foreach $user {remove-mailboxfolderpermission -identityuser1.alias:\calendar -user$user 4.alias}
foreach $user {remove-mailboxfolderpermission -identityuser2.alias:\calendar -user$user 1.alias}
foreach $user {remove-mailboxfolderpermission -identityuser2.alias:\calendar -user$user 2.alias}
foreach $user {remove-mailboxfolderpermission -identityuser2.alias:\calendar -user$user 3.alias}
foreach $user {remove-mailboxfolderpermission -identityuser2.alias:\calendar -user$user 4.alias}
foreach $user {remove-mailboxfolderpermission -identityuser3.alias:\calendar -user$user 1.alias}
等
但是它从同一个数组中提取 user.alias,所以在我的实验中,它要么运行一次(-identity 和 -user 的相同条目(,要么因错误而失败或永远运行。
有关从同一来源提取嵌套 ForEach 的任何帮助、提示或一般建议都会有所帮助。
为了嵌套"for"循环,您需要准备好信息或查找信息的方法,以便包装循环。
您不希望在每个邮箱上指定每个用户的别名,因此执行此操作的最佳方法是使用Get-MailboxFolderPermission
cmdlet。 您的第一个循环(遍历每个用户(是正确的。 第二个循环可能需要一些帮助,因为您不想手动输入每个具有权限的用户。 您的代码最后应如下所示:
$users = Get-Mailbox
ForEach ($user in $users) {
$perms = Get-MailboxFolderPermission -identity $user.alias:Calendar | Format-List
ForEach ($perm in $perms) {
Remove-MailboxFolderPermission -identity $user.alias:calendar -user $perm.user
}
}
我没有交换环境来测试这一点,但我认为这应该真正为您指明正确的方向,以便能够填写您的环境详细信息。