-
Notifications
You must be signed in to change notification settings - Fork 207
/
Copy pathSet-SPOTenantSyncClientRestriction.ps1
92 lines (75 loc) · 3.26 KB
/
Set-SPOTenantSyncClientRestriction.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
#Requires -Version 5.0
#Requires -Modules Microsoft.Online.SharePoint.PowerShell
<#
.SYNOPSIS
Controls tenant-wide options and restrictions specific to syncing files
.DESCRIPTION
.NOTES
This PowerShell script was developed and optimized for ScriptRunner. The use of the scripts requires ScriptRunner.
The customer or user is authorized to copy the script from the repository and use them in ScriptRunner.
The terms of use for ScriptRunner do not apply to this script. In particular, ScriptRunner Software GmbH assumes no liability for the function,
the use and the consequences of the use of this freely available script.
PowerShell is a product of Microsoft Corporation. ScriptRunner is a product of ScriptRunner Software GmbH.
© ScriptRunner Software GmbH
.COMPONENT
Requires Module Microsoft.Online.SharePoint.PowerShell
.LINK
https://github.com/scriptrunner/ActionPacks/tree/master/O365/SharePointOnline/Tenant
.Parameter ExcludedFileExtensions
[sr-en] Blocks certain file types from syncing with the new sync client (OneDrive.exe)
.Parameter BlockMacSync
[sr-en] Block Mac sync clients
.Parameter DomainGuids
[sr-en] Sets the domain GUID to add to the safe recipient list, comma separated
.Parameter Enable
[sr-en] Enables the feature to block sync originating from domains that are not present in the safe recipients list
.Parameter GrooveBlockOption
[sr-en] Controls whether or not a tenant’s users can sync OneDrive for Business libraries with the old OneDrive for Business sync client
.Parameter DisableReportProblemDialog
#>
param(
[Parameter(Mandatory = $true, ParameterSetName = 'FileExclusion')]
[string]$ExcludedFileExtensions,
[Parameter(Mandatory = $true, ParameterSetName = 'Blocking')]
[string]$DomainGuids,
[Parameter(Mandatory = $true, ParameterSetName = 'GrooveBlock')]
[ValidateSet('OptOut', 'HardOptin', 'SoftOptin')]
[switch]$GrooveBlockOption,
[Parameter(Mandatory = $true, ParameterSetName = 'ReportProblem')]
[bool]$DisableReportProblemDialog,
[Parameter(ParameterSetName = 'Blocking')]
[switch]$BlockMacSync,
[Parameter(ParameterSetName = 'Blocking')]
[switch]$Enable
)
Import-Module Microsoft.Online.SharePoint.PowerShell
try{
[hashtable]$cmdArgs = @{'ErrorAction' = 'Stop'}
if($PSCmdlet.ParameterSetName -eq 'FileExclusion'){
$cmdArgs.Add('ExcludedFileExtensions' , $ExcludedFileExtensions)
}
elseif($PSCmdlet.ParameterSetName -eq 'Blocking'){
$cmdArgs.Add('BlockMacSync' , $BlockMacSync)
$cmdArgs.Add('Enable' , $Enable)
$guids = $DomainGuids.Split(',')
$cmdArgs.Add('DomainGuids' , $guids)
}
elseif($PSCmdlet.ParameterSetName -eq 'GrooveBlock'){
$cmdArgs.Add('GrooveBlockOption' , $GrooveBlockOption)
}
elseif($PSCmdlet.ParameterSetName -eq 'ReportProblem'){
$cmdArgs.Add('DisableReportProblemDialog' , $DisableReportProblemDialog)
}
$result = Set-SPOTenantSyncClientRestriction @cmdArgs | Select-Object *
if($SRXEnv) {
$SRXEnv.ResultMessage = $result
}
else {
Write-Output $result
}
}
catch{
throw
}
finally{
}