首页 > 解决方案 > 删除权限时自动回答是

问题描述

我想删除几个用户访问另一个用户的日历。每次我使用删除命令时,它都会问我,

“您确定要执行此操作吗?”

如果我有一个 CSV 并在我想从另一个用户中删除的所有用户上运行一个 for each 循环,我怎样才能让它为每个用户自动回答是,这样我就不必手动操作了?

Remove-MailboxFolderPermission -Identity "user@contoso.se:\calendar" -user "user@contoso.se"

标签: powershell

解决方案


正如@Olaf 温和地建议的那样,这个-Confirm开关会减轻你的痛苦。

这是一个通用参数,这意味着您几乎可以将它用于所有 PowerShell cmd。

ConfirmPreference 的工作原理

在 PowerShell 中,cmdlet 作者指定命令对其应运行的环境的影响级别。

影响级别为无、低、中或高。

顺便说一句, PowerShell 默认为High

当命令运行时,它会检查其影响级别是否高于您指定的$ConfirmPreference. 如果命令的影响级别高于您指定的首选项,则它会停止并提示您确认。

如果我们不想每次都确认怎么办

PowerShell 让我们可以设置自己的风险承受能力。我们可以通过以下两种方式之一来做到这一点。

  • 为当前脚本设置我们的首选项

  • 仅覆盖一个命令

用变量指定我们的影响容差

当您启动 PowerShell 时,您将在 中指定一个值$ConfirmPReference,这是 PowerShell 的许多自动变量之一。您可以将此值更改为NoneLow或。MediumHigh

您可以在脚本顶部指定如下内容:

$ConfirmPreference = 'MEDIUM'

这意味着任何影响级别为“无”、“低”或“中”的命令都将获得自动批准,并且不需要任何输入。

覆盖一个命令

如果您只希望一个命令以提升的影响授权运行,您可以附加-Confirm:$false其奇怪的语法。

如果您真的希望此命令在执行操作之前不确认...那么您将需要更新您的简历,然后运行以下命令。

Remove-MailboxFolderPermission `
   -Identity "user@contoso.se:\calendar" `
   -user "user@contoso.se"
   -Confirm:$false


推荐阅读