forked from timmcmic/DLConversionV2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Test-O365Recipient.ps1
124 lines (94 loc) · 4.32 KB
/
Test-O365Recipient.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
<#
.SYNOPSIS
This function tests if the recipient is found in Office 365.
.DESCRIPTION
This function tests to ensure a recipient is found in Office 365.
.PARAMETER recipientSMTPAddress
The address of the recipient to look for.
.PARAMETER externalDirectoryObjectID
The external directory objectID of the object.
.OUTPUTS
None
.EXAMPLE
test-O365Recipient -recipientSMTPAddress address
test-O365Recipient -externalDirectoryObjectID
#>
Function Test-O365Recipient
{
[cmdletbinding()]
Param
(
[Parameter(Mandatory = $true)]
$member
)
#Declare local variables.
[array]$functionDirectoryObjectID=@()
#Start function processing.
Out-LogFile -string "********************************************************************************"
Out-LogFile -string "BEGIN TEST-O365RECIPIENT"
Out-LogFile -string "********************************************************************************"
if (($member.externalDirectoryObjectID -ne $NULL) -and ($member.recipientOrUser -eq "Recipient"))
{
out-LogFile -string "Testing based on External Directory Object ID"
out-logfile -string $member.ExternalDirectoryObjectID
out-logfile -string $member.recipientOrUser
#Modify the external directory object id.
$functionDirectoryObjectID=$member.externalDirectoryObjectID.Split("_")
out-logfile -string $functionDirectoryObjectID[1]
try {
get-exoRecipient -identity $functionDirectoryObjectID[1] -errorAction STOP
}
catch {
out-logfile -string ("The recipient was not found in Office 365. ERROR --"+$functionDirectoryObjectID[1] )
out-logFile -string $_ -isError:$TRUE
}
}
elseif (($member.PrimarySMTPAddressOrUPN -ne $NULL) -and ($member.recipientoruser -eq "Recipient"))
{
out-LogFile -string "Testing based on Primary SMTP Address"
out-logfile -string $member.PrimarySMTPAddressOrUPN
out-logfile -string $member.recipientOrUser
try {
get-exoRecipient -identity $member.PrimarySMTPAddressOrUPN -errorAction Stop
}
catch {
out-logfile -string ("The recipient was not found in Office 365. ERROR -- "+$member.primarySMTPAddressOrUPN)
out-logfile -string $_ -isError:$TRUE
}
}
elseif (($member.ExternalDirectoryObjectID -ne $NULL) -and ($member.recipientoruser -eq "User"))
{
out-LogFile -string "Testing based on external directory object ID."
out-logfile -string $member.externalDirectoryObjectID
out-logfile -string $member.recipientOrUser
#Modify the external directory object id.
$functionDirectoryObjectID=$member.externalDirectoryObjectID.Split("_")
out-logfile -string $functionDirectoryObjectID[1]
try {
get-o365User -identity $functionDirectoryObjectID[1] -errorAction STOP
}
catch {
out-logfile -string ("The recipient was not found in Office 365. ERROR --"+$functionDirectoryObjectID[1] )
out-logFile -string $_ -isError:$TRUE
}
}
elseif (($member.PrimarySMTPAddressOrUPN -ne $NULL) -and ($member.recipientoruser -eq "User"))
{
out-LogFile -string "Testing based on user principal name."
out-logfile -string $member.PrimarySMTPAddressOrUPN
out-logfile -string $member.recipientOrUser
try {
get-o365User -identity $member.primarySMTPAddressOrUPN -errorAction STOP
}
catch {
out-logfile -string ("The recipient was not found in Office 365. ERROR -- "+$member.primarySMTPAddressOrUPN)
out-logfile -string $_ -isError:$TRUE
}
}
else
{
out-logfile -string "An invalid object was passed to test-o365recipient - failing." -isError:$TRUE
}
Out-LogFile -string "END TEST-O365RECIPIENT"
Out-LogFile -string "********************************************************************************"
}