Powershell Exchange 命令循环不起作用

Powershell Exchange 命令循环不起作用

我正在使用 Powershell 处理我的 Office 365 Exchange 实例,但遇到了一个命令问题,我知道我过去曾成功运行过这个命令。我已将此命令分解为子部分并单独运行它们,但似乎无法使此 ForEach 循环正常工作。我可能在这里遗漏了什么?

PS C:\Users\bsigrist> ForEach ($Mailbox in (Get-Mailbox -RecipientTypeDetails UserMailbox)) 
{ $cal = $Mailbox.alias+":\Calendar" Set-MailboxFolderPermission -Identity $cal 
  -User Default -AccessRights LimitedDetails }

        At line:1 char:108
        + ... cal = $Mailbox.alias+":\Calendar" Set-MailboxFolderPermission -Identi ...
        +                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~
        Unexpected token 'Set-MailboxFolderPermission' in expression or statement.
            + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordExcep
           tion
            + FullyQualifiedErrorId : UnexpectedToken

答案1

你漏掉了一个分号":\Calendar"

答案2

$cal = $Mailbox.alias+":\Calendar" Set-MailboxFolderPermission -Identity $cal -User Default -AccessRights LimitedDetails

这是作为一个 Powershell 命令发送的,但我认为您实际上希望将其作为两个命令。第一个命令为 分配一个值$cal,第二个命令运行Set-MailboxFolderPermission

正如 longneck 指出的那样,您可以用分号来分隔这些命令。 也在以下位置讨论:

https://blogs.msdn.microsoft.com/mattn/2012/04/28/powershell-command-separator-is-and-not/

https://superuser.com/questions/612409/how-do-i-run-multiple-commands-on-one-line-in-powershell

相关内容