-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathReadMailboxSettings.ps1
77 lines (64 loc) · 2.36 KB
/
ReadMailboxSettings.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
# Get the user purpose of the mailbox for a specific user
# Requires MailboxSettings.Read permission
function Get-UserMailboxSettingUserPurpose {
[cmdletbinding()]
param(
[parameter(Mandatory)]
[string] $ClientId,
[parameter(Mandatory)]
[string] $TenantId,
[parameter(Mandatory)]
[string] $Secret,
[parameter(Mandatory)]
[string] $UserId
)
$securedPasswordPassword = ConvertTo-SecureString `
-String $Secret -AsPlainText -Force
$clientSecretCredential = New-Object `
-TypeName System.Management.Automation.PSCredential `
-ArgumentList $ClientId, $securedPasswordPassword
Connect-MgGraph -TenantId $TenantId -ClientSecretCredential $clientSecretCredential
Import-Module Microsoft.Graph.Users
$settings = Get-MgUserMailboxSetting -UserId $UserId -Property "userPurpose"
return $settings.UserPurpose
}
# Get the user purpose of the mailbox for all users in the tenant. Guest users are excluded
# Requires User.Read.All MailboxSettings.Read permissions
function Get-UsersMailboxSettingUserPurpose {
[cmdletbinding()]
param(
[parameter(Mandatory)]
[string] $ClientId,
[parameter(Mandatory)]
[string] $TenantId,
[parameter(Mandatory)]
[string] $Secret
)
$securedPasswordPassword = ConvertTo-SecureString `
-String $Secret -AsPlainText -Force
$clientSecretCredential = New-Object `
-TypeName System.Management.Automation.PSCredential `
-ArgumentList $ClientId, $securedPasswordPassword
Connect-MgGraph -TenantId $TenantId -ClientSecretCredential $clientSecretCredential
Import-Module Microsoft.Graph.Users
$usersPurpose = @{}
$users = Get-MgUser `
-Property "id,displayName,userPrincipalName" `
-Filter "UserType ne 'Guest'" `
-ConsistencyLevel eventual `
-CountVariable CountVar `
| ForEach-Object {
$settings = Get-MgUserMailboxSetting -UserId $_.Id -Property "userPurpose"
$usersPurpose[$_.Id]=$settings.UserPurpose
}
return $usersPurpose
}
Get-UserMailboxSettingUserPurpose `
-ClientId "..." `
-TenantId "..." `
-Secret "..." `
-UserId "..."
Get-UsersMailboxSettingUserPurpose `
-ClientId "..." `
-TenantId "..." `
-Secret "..."