@@ -15,42 +15,40 @@ public class GetSiteScriptFromWeb : PnPSharePointOnlineAdminCmdlet
15
15
private const string ParameterSet_ALLLISTS = "All lists" ;
16
16
private const string ParameterSet_SPECIFICCOMPONENTS = "Specific components" ;
17
17
18
- [ Parameter ( ParameterSetName = ParameterSet_BASICCOMPONENTS ) ]
19
- [ Parameter ( ParameterSetName = ParameterSet_ALLCOMPONENTS ) ]
20
- [ Parameter ( ParameterSetName = ParameterSet_ALLLISTS ) ]
21
- [ Parameter ( ParameterSetName = ParameterSet_SPECIFICCOMPONENTS ) ]
22
- [ Parameter ( Mandatory = false , ValueFromPipeline = true ) ]
18
+ [ Parameter ( Mandatory = false , ValueFromPipeline = true , ParameterSetName = ParameterSet_BASICCOMPONENTS ) ]
19
+ [ Parameter ( Mandatory = false , ValueFromPipeline = true , ParameterSetName = ParameterSet_ALLCOMPONENTS ) ]
20
+ [ Parameter ( Mandatory = false , ValueFromPipeline = true , ParameterSetName = ParameterSet_ALLLISTS ) ]
21
+ [ Parameter ( Mandatory = false , ValueFromPipeline = true , ParameterSetName = ParameterSet_SPECIFICCOMPONENTS ) ]
23
22
public string Url ;
24
23
25
- [ Parameter ( ParameterSetName = ParameterSet_BASICCOMPONENTS ) ]
26
- [ Parameter ( ParameterSetName = ParameterSet_ALLCOMPONENTS ) ]
27
- [ Parameter ( ParameterSetName = ParameterSet_SPECIFICCOMPONENTS ) ]
28
- [ Parameter ( Mandatory = false ) ]
24
+ [ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_BASICCOMPONENTS ) ]
25
+ [ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_ALLCOMPONENTS ) ]
26
+ [ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_SPECIFICCOMPONENTS ) ]
29
27
public string [ ] Lists ;
30
28
31
29
[ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_ALLCOMPONENTS ) ]
32
30
public SwitchParameter IncludeAll ;
33
31
34
- [ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_ALLLISTS ) ]
35
- public SwitchParameter IncludeAllLists ;
32
+ [ Parameter ( Mandatory = true , ParameterSetName = ParameterSet_ALLLISTS ) ]
33
+ public SwitchParameter IncludeAllLists ;
36
34
37
- [ Parameter ( ParameterSetName = ParameterSet_ALLLISTS ) ]
35
+ [ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_ALLLISTS ) ]
38
36
[ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_SPECIFICCOMPONENTS ) ]
39
37
public SwitchParameter IncludeBranding ;
40
38
41
- [ Parameter ( ParameterSetName = ParameterSet_ALLLISTS ) ]
39
+ [ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_ALLLISTS ) ]
42
40
[ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_SPECIFICCOMPONENTS ) ]
43
41
public SwitchParameter IncludeLinksToExportedItems ;
44
42
45
- [ Parameter ( ParameterSetName = ParameterSet_ALLLISTS ) ]
43
+ [ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_ALLLISTS ) ]
46
44
[ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_SPECIFICCOMPONENTS ) ]
47
45
public SwitchParameter IncludeRegionalSettings ;
48
46
49
- [ Parameter ( ParameterSetName = ParameterSet_ALLLISTS ) ]
47
+ [ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_ALLLISTS ) ]
50
48
[ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_SPECIFICCOMPONENTS ) ]
51
49
public SwitchParameter IncludeSiteExternalSharingCapability ;
52
50
53
- [ Parameter ( ParameterSetName = ParameterSet_ALLLISTS ) ]
51
+ [ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_ALLLISTS ) ]
54
52
[ Parameter ( Mandatory = false , ParameterSetName = ParameterSet_SPECIFICCOMPONENTS ) ]
55
53
public SwitchParameter IncludeTheme ;
56
54
@@ -61,13 +59,23 @@ protected override void ExecuteCmdlet()
61
59
{
62
60
Url = Connection . Url ;
63
61
}
62
+
63
+ WriteVerbose ( $ "Creating site script from web { Url } ") ;
64
64
65
- if ( IncludeAllLists || IncludeAll )
65
+ if ( IncludeAllLists || IncludeAll )
66
66
{
67
- ClientContext . Load ( ClientContext . Web . Lists , lists => lists . Where ( list => ! list . Hidden && ! list . IsCatalog && ! list . IsSystemList && ! list . IsPrivate && ! list . IsApplicationList && ! list . IsSiteAssetsLibrary && ! list . IsEnterpriseGalleryLibrary ) . Include ( list => list . RootFolder . ServerRelativeUrl ) ) ;
68
- ClientContext . ExecuteQueryRetry ( ) ;
67
+ var targetWebContext = Url != Connection . Url ? Connection . CloneContext ( Url ) : ClientContext ;
68
+
69
+ targetWebContext . Load ( targetWebContext . Web . Lists , lists => lists . Where ( list => ! list . Hidden && ! list . IsCatalog && ! list . IsSystemList && ! list . IsPrivate && ! list . IsApplicationList && ! list . IsSiteAssetsLibrary && ! list . IsEnterpriseGalleryLibrary ) . Include ( list => list . RootFolder . ServerRelativeUrl ) ) ;
70
+ targetWebContext . ExecuteQueryRetry ( ) ;
71
+
72
+ Lists = targetWebContext . Web . Lists . Select ( l => System . Text . RegularExpressions . Regex . Replace ( l . RootFolder . ServerRelativeUrl , @"\/(?:sites|teams)\/.*?\/" , string . Empty ) ) . ToArray ( ) ;
69
73
70
- Lists = ClientContext . Web . Lists . Select ( l => System . Text . RegularExpressions . Regex . Replace ( l . RootFolder . ServerRelativeUrl , @"\/(?:sites|teams)\/.*?\/" , string . Empty ) ) . ToArray ( ) ;
74
+ WriteVerbose ( $ "Including all custom lists and libraries in the site script... { Lists . Length } found") ;
75
+ foreach ( var list in Lists )
76
+ {
77
+ WriteVerbose ( $ "- { list } ") ;
78
+ }
71
79
}
72
80
73
81
var tenantSiteScriptSerializationInfo = new TenantSiteScriptSerializationInfo
0 commit comments