-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNew-SharedMailbox.ps1
55 lines (41 loc) · 1.77 KB
/
New-SharedMailbox.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
function global:New-SharedMailbox($MailboxName,$User,$Identity,$List,$Domain,$Lastname){
#Install-Module ExchangeOnlineManagement
Import-Module ExchangeOnlineManagement
$MailboxName = "$MailboxName$Domain"
Write-Host "Script will create $MailboxName"
Write-Host "------------------------"
if ($Identity -eq $null){}
else{Connect-ExchangeOnline -UserPrincipalName $Identity}
Write-Host "Creating Mailbox..."
New-Mailbox -DisplayName "$Lastname, $MailboxName" -LastName "CP" -FirstName $MailboxName -MicrosoftOnlineServicesID $MailboxName -Name $MailboxName -Verbose
Write-Host "Mailbox Created..."
Write-Host "------------------------"
Write-Host "Gettting Mailbox..."
Get-Mailbox -Identity $MailboxName -Verbose
Write-Host "------------------------"
timeout /t 3
Write-Host "Setting to Shared..."
Set-Mailbox -Identity $MailboxName -Type Shared -Verbose
Write-Host "------------------------"
Write-Host "Setting mailbox variable..."
$mailbox = Get-Mailbox $MailboxName -Verbose
Write-Host "------------------------"
if($List -ne $Null){
foreach ($person in $List){
Add-MailboxPermission $MailboxName -User $person -AccessRights FullAccess
Add-RecipientPermission $MailboxName -AccessRights SendAs -Trustee $person
Write-Host "$person has been given FullAcess to $MailboxName" -ForegroundColor Green
}
}
else
{
Write-Host " "
Write-Host "Setting user permission on mailbox..."
Add-MailboxPermission $MailboxName -User $User -AccessRights FullAccess
Write-Host "------------------------"
}
Write-Host "Mailbox created: " $mailbox.Name
if($mailbox.IsShared -eq "True"){
Write-Host "Mailbox Type: Shared"
}
}