我正在使用 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
$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
您在之后缺少一个分号
":\Calendar"