-
-
Notifications
You must be signed in to change notification settings - Fork 4
/
1-ConfigureSharedCalling-PreReqs.ps1
141 lines (120 loc) · 6.09 KB
/
1-ConfigureSharedCalling-PreReqs.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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<#
Configure Shared Calling Pre-Requisites
Version: v1.0
Date: 10/01/2024
Author: Rob Watts - Cloud Solution Architect - Microsoft
Description: This script will install the pre-requisites needed to configure Shared Calling feature for Microsoft Teams
DISCLAIMER
THIS CODE IS SAMPLE CODE. THESE SAMPLES 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 SAMPLES REMAINS WITH YOU. IN NO EVENT SHALL MICROSOFT OR ITS SUPPLIERS 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 SAMPLES, EVEN IF MICROSOFT HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
BECAUSE SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR
INCIDENTAL DAMAGES, THE ABOVE LIMITATION MAY NOT APPLY TO YOU.
#>
################### START OF GENERIC SCRIPT FUNCTIONS ###################
function ShowDisclaimer
{
# Pop out disclaimer
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
[Windows.Forms.MessageBox]::Show("
THIS CODE IS SAMPLE CODE.
THESE SAMPLES 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 SAMPLES REMAINS WITH YOU.
IN NO EVENT SHALL MICROSOFT OR ITS SUPPLIERS 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 SAMPLES, EVEN IF MICROSOFT HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
BECAUSE SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, THE ABOVE LIMITATION MAY NOT APPLY TO YOU.", "***DISCLAIMER***", [Windows.Forms.MessageBoxButtons]::OK, [Windows.Forms.MessageBoxIcon]::Warning)
}
################### END OF GENERIC SCRIPT FUNCTIONS ###################
################### START OF INSTALL MODULE FUNCTIONS ###################
Function Install-AzureADPreview
{
Install-Module AzureADPreview -Force
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Write-Host "AzureADPreview module installed." -ForegroundColor Green
}
Function Install-MicrosoftGraph
{
Install-Module Microsoft.Graph
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Write-Host "Microsoft.Graph module installed." -ForegroundColor Green
}
Function Install-MSOnline
{
Install-Module MSOnline
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Write-Host "MSOnline module installed." -ForegroundColor Green
}
Function Install-ExchangeOnlineManagement
{
Install-Module ExchangeOnlineManagement
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Write-Host "ExchangeOnlineManagement module installed." -ForegroundColor Green
}
Function Install-MicrosoftTeams
{
Install-Module MicrosoftTeams
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Write-Host "MicrosoftTeams module installed." -ForegroundColor Green
}
################### END OF INSTALL MODULE FUNCTIONS ###################
################### START OF COMMANDS ###################
ShowDisclaimer
Write-Host "Checking for elevated permissions..."
if (-NOT ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
Write-Warning "Insufficient permissions to run this script. Open the PowerShell console as an administrator and run this script again."
Break
} else {
Write-Host "Script is running as administrator. Moving on..." -ForegroundColor Green
}
# Installs Powershell Modules, if not already installed
Write-Host "Checking for PowerShell Modules" -ForegroundColor Gray -BackgroundColor Black
#AzureADPreview
If (-not(Get-InstalledModule AzureADPreview -ErrorAction silentlycontinue)) {
Write-Host "AzureADPreview module does not exist" -ForegroundColor DarkRed
Write-Host "AzureADPreview module will be installed"
Install-AzureADPreview
}
Else {
Write-Host "AzureADPreview module exists" -ForegroundColor Green
}
#Microsoft.Graph
If (-not(Get-InstalledModule Microsoft.Graph -ErrorAction silentlycontinue)) {
Write-Host "Microsoft.Graph module does not exist" -ForegroundColor DarkRed
Write-Host "Microsoft.Graph module will be installed"
Install-MicrosoftGraph
}
Else {
Write-Host "Microsoft.Graph module exists" -ForegroundColor Green
}
#MSOnline
If (-not(Get-InstalledModule MSOnline -ErrorAction silentlycontinue)) {
Write-Host "MSOnline module does not exist" -ForegroundColor DarkRed
Write-Host "MSOnline module will be installed"
Install-MSOnline
}
Else {
Write-Host "MSOnline module exists" -ForegroundColor Green
}
#ExchangeOnlineManagement
If (-not(Get-InstalledModule ExchangeOnlineManagement -ErrorAction silentlycontinue)) {
Write-Host "ExchangeOnlineManagement module does not exist" -ForegroundColor DarkRed
Write-Host "ExchangeOnlineManagement module will be installed"
Install-ExchangeOnlineManagement
}
Else {
Write-Host "ExchangeOnlineManagement module exists" -ForegroundColor Green
}
#MicrosoftTeams
If (-not(Get-InstalledModule MicrosoftTeams -ErrorAction silentlycontinue)) {
Write-Host "MicrosoftTeams module does not exist" -ForegroundColor DarkRed
Write-Host "MicrosoftTeams module will be installed"
Install-MicrosoftTeams
}
Else {
Write-Host "MicrosoftTeams module exists" -ForegroundColor Green
}
################### END OF COMMANDS ###################