Deleting Meeting Requests made by terminated users

2019-02-20 23:14发布

Need to delete the meeting requests made by terminated users from all the conference rooms for multiple terminated users at a time.

below is the script which i built to delete the meetings requests for two terminated users from all the conference rooms. i used OR operator if i want to delete the meetings for two terminated users(kind:calendar from:sasi OR Kalai). How can i add more than two terminated users at a time? i have more than 500 terminated users to delete their meetings requests from all the conference rooms.

Write-Progress -Activity "Preparing" -Status "Retrieving mailbox list" -PercentComplete 0
$rooms=get-mailbox -recipienttypedetails roommailbox -resultsize unlimited -warningaction:silentlycontinue| where {$_.name -notlike "*test*"}

$count=$rooms.count

foreach($room in $rooms)

{


    $i=$i+1
    $percentage=$i/$count*100


    Write-Progress -Activity "Collecting mailbox details" -Status "Processing mailbox $i of $Count - $room" -PercentComplete $percentage

$room | search-mailbox -searchquery "kind:calendar from:sasi OR Kalai" -targetmailbox sankar_munirathinam@domain.com -targetfolder "Deleting Meeting" -deletecontent -force

}

2条回答
啃猪蹄的小仙女
2楼-- · 2019-02-20 23:54

So if I understand the above correctly, you'd do the following? and you can take the "deletecontent -force" if this is merely investigative?

Write-Progress -Activity "Preparing" -Status "Retrieving mailbox list" -PercentComplete 0
$rooms=get-mailbox -recipienttypedetails roommailbox -resultsize unlimited -    
warningaction:silentlycontinue| where {$_.name -notlike "*test*"}

$count=$rooms.count
$TerminatedUsers = Get-Content .\TerminatedUsersList.txt
foreach ($User in $TerminatedUsers) {
foreach($room in $rooms)

{


$i=$i+1
$percentage=$i/$count*100


Write-Progress -Activity "Collecting mailbox details" -Status "Processing mailbox $i of $Count -
$room" -PercentComplete $percentage

$room | search-mailbox -searchquery "kind:calendar from:$($user)" -targetmailbox    
administrator@domain.com -targetfolder "Deleting Meeting" -deletecontent -force

}
}
查看更多
Anthone
3楼-- · 2019-02-21 00:00

I think I can actually answer this for you! My first answer (that I can remember) on stack:)

You should put the terminated users' usernames (or some other identifier) in a text file, then insert a new line below your line

$count=$rooms.count

that is

$TerminatedUsers = Get-Content .\TerminatedUsersList.txt.

Then add another line that is

foreach ($User in $TerminatedUsers) {

Then add a final closing curly brace } to the very end of your script.

Finally, change your from:sasi OR Kalai to from:$($User)

This will loop through each of the terminated users, and for each one of them, it will search all of the room mailboxes for their meetings.

I hope this makes sense for you.

查看更多
登录 后发表回答