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 

":\Calendar"之后您错过了一个分号

$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