# Powershell script to grant permission to resource mailboxes
#
#################################################################################
#
# The sample scripts are not supported under any Microsoft standard support
# program or service. The sample scripts are provided AS IS without warranty
# of any kind. Microsoft further disclaims all implied warranties including, without
# limitation, any implied warranties of merchantability or of fitness for a particular
# purpose. The entire risk arising out of the use or performance of the sample scripts
# and documentation remains with you. In no event shall Microsoft, its authors, or
# anyone else involved in the creation, production, or delivery of the scripts be liable
# for any damages whatsoever (including, without limitation, damages for loss of business
# profits, business interruption, loss of business information, or other pecuniary loss)
# arising out of the use of or inability to use the sample scripts or documentation,
# even if Microsoft has been advised of the possibility of such damages
#
#################################################################################
#
# Examples to use this script in Powershell...
#
# To add fullaccess permission for "administrator" account
#
#.\Add-Res-Mailbox-Permission "administrator"
trap
{
write-host $_.Exception.Message -fore Red
continue
}
function Grand-FullPermission
{
$searcher = new-object DirectoryServices.DirectorySearcher
$searcher.filter = ("(&(objectCategory=person)(objectClass=User)(mailnickname=*)(userAccountControl:1.2.840.113556.1.4.803:=2))")
$user = $searcher.FindAll()
if ($user.Count -lt 1)
{
throw "no resource mailboxes found."
}
else
{
foreach($objResult in $user)
{
$objUser = $objResult.Properties
#Write-Host "Account Name (CN): $($objUser.name)"
#Write-Host "Alias (mailNickname): $($objUser.mailnickname)"
#add-content -path mailboxlist.txt -encoding ascii $($objUser.mailnickname)
Add-MailboxPermission -identity $($objUser.mailnickname) -user $script:serviceaccnt -accessrights fullaccess
}
}
}
$script:serviceaccnt = $args[0]
if ($script:serviceaccnt.Length -gt 0)
{
Grand-FullPermission
}
else
{
write-host "no service account supplied"
}