如何在Microsoft Powershell中调用多个数据库

时间:2015-04-16 09:53:38

标签: sql database powershell

我有命令删除数据库中用户的管理员权限。然后我运行另一个脚本,然后添加管理员权限。

删除管理员权限的脚本是:

Get-Mailbox -ResultSize Unlimited -Database "MailboxDatabase4" | Remove-MailboxPermission -user "admin" -AccessRights FullAccess -InheritanceType All

添加管理员权限的脚本是:

Get-Mailbox -ResultSize Unlimited -Database "MailboxDatabase4" | Add-MailboxPermission -user "admin" -AccessRights FullAccess -InheritanceType All

我有6个数据库,因此我每天必须运行12次脚本。有没有办法在一个脚本中调用所有数据库,这样我只需要为所有数据库运行一个脚本来删除管理员权限,然后再添加另一个脚本来添加管理员权限。因此,不必为每个单独的数据库执行此操作。

1 个答案:

答案 0 :(得分:0)

只需删除通话中的-Database参数?

Get-Mailbox -ResultSize Unlimited | ...

Get-Mailbox将立即返回所有邮箱。根据组织的规模,这可能是一项代价高昂的冒险。

您还可以收集所有数据库,然后在循环中调用Get-Mailbox,但这与上面发生的情况没有什么不同。

$dbs = get-mailboxdatabase | Select -ExpandProperty Name
$dbs | ForEach-Object{
    Get-Mailbox -ResultSize Unlimited -Database $_ | ...
}