@pnp/cli-microsoft365 7.4.0-beta.5820537 → 7.4.0-beta.8d6724f
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/allCommands.json +1 -1
- package/allCommandsFull.json +1 -1
- package/dist/m365/flow/commands/run/run-get.js +52 -13
- package/dist/m365/spo/commands/group/group-member-add.js +21 -4
- package/dist/m365/spo/commands/group/group-member-remove.js +27 -10
- package/dist/m365/spo/commands/user/user-ensure.js +16 -6
- package/docs/docs/cmd/flow/run/run-get.mdx +167 -4
- package/docs/docs/cmd/spo/group/group-member-add.mdx +19 -7
- package/docs/docs/cmd/spo/group/group-member-remove.mdx +12 -6
- package/docs/docs/cmd/spo/user/user-ensure.mdx +8 -5
- package/package.json +1 -1
|
@@ -30,8 +30,12 @@ class FlowRunGetCommand extends PowerAutomateCommand {
|
|
|
30
30
|
if (this.verbose) {
|
|
31
31
|
await logger.logToStderr(`Retrieving information about run ${args.options.name} of Microsoft Flow ${args.options.flowName}...`);
|
|
32
32
|
}
|
|
33
|
+
if (args.options.includeTriggerInformation) {
|
|
34
|
+
await this.warn(logger, `Parameter 'includeTriggerInformation' is deprecated. Please use 'withTrigger instead`);
|
|
35
|
+
}
|
|
36
|
+
const actionsParameter = args.options.withActions ? '$expand=properties%2Factions&' : '';
|
|
33
37
|
const requestOptions = {
|
|
34
|
-
url: `${this.resource}/providers/Microsoft.ProcessSimple/environments/${formatting.encodeQueryParameter(args.options.environmentName)}/flows/${formatting.encodeQueryParameter(args.options.flowName)}/runs/${formatting.encodeQueryParameter(args.options.name)}
|
|
38
|
+
url: `${this.resource}/providers/Microsoft.ProcessSimple/environments/${formatting.encodeQueryParameter(args.options.environmentName)}/flows/${formatting.encodeQueryParameter(args.options.flowName)}/runs/${formatting.encodeQueryParameter(args.options.name)}?${actionsParameter}api-version=2016-11-01`,
|
|
35
39
|
headers: {
|
|
36
40
|
accept: 'application/json'
|
|
37
41
|
},
|
|
@@ -43,17 +47,11 @@ class FlowRunGetCommand extends PowerAutomateCommand {
|
|
|
43
47
|
res.endTime = res.properties.endTime || '';
|
|
44
48
|
res.status = res.properties.status;
|
|
45
49
|
res.triggerName = res.properties.trigger.name;
|
|
46
|
-
if (args.options.includeTriggerInformation && res.properties.trigger.outputsLink) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
'x-anonymous': true
|
|
52
|
-
},
|
|
53
|
-
responseType: 'json'
|
|
54
|
-
};
|
|
55
|
-
const triggerInformationResponse = await request.get(triggerInformationOptions);
|
|
56
|
-
res.triggerInformation = triggerInformationResponse.body;
|
|
50
|
+
if ((args.options.includeTriggerInformation || args.options.withTrigger) && res.properties.trigger.outputsLink) {
|
|
51
|
+
res.triggerInformation = await this.getTriggerInformation(res);
|
|
52
|
+
}
|
|
53
|
+
if (!!args.options.withActions) {
|
|
54
|
+
res.actions = await this.getActionsInformation(res, args.options.withActions);
|
|
57
55
|
}
|
|
58
56
|
await logger.log(res);
|
|
59
57
|
}
|
|
@@ -61,6 +59,38 @@ class FlowRunGetCommand extends PowerAutomateCommand {
|
|
|
61
59
|
this.handleRejectedODataJsonPromise(err);
|
|
62
60
|
}
|
|
63
61
|
}
|
|
62
|
+
async getTriggerInformation(res) {
|
|
63
|
+
return await this.requestAdditionalInformation(res.properties.trigger.outputsLink.uri);
|
|
64
|
+
}
|
|
65
|
+
async getActionsInformation(res, withActions) {
|
|
66
|
+
const chosenActions = typeof withActions === 'string' ? withActions.split(',') : null;
|
|
67
|
+
const actionsResult = {};
|
|
68
|
+
for (const action in res.properties.actions) {
|
|
69
|
+
if (!res.properties.actions[action] || (chosenActions && chosenActions.indexOf(action) === -1)) {
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
actionsResult[action] = res.properties.actions[action];
|
|
73
|
+
if (!!res.properties.actions[action].inputsLink?.uri) {
|
|
74
|
+
actionsResult[action].input = await this.requestAdditionalInformation(res.properties.actions[action].inputsLink?.uri);
|
|
75
|
+
}
|
|
76
|
+
if (!!res.properties.actions[action].outputsLink?.uri) {
|
|
77
|
+
actionsResult[action].output = await this.requestAdditionalInformation(res.properties.actions[action].outputsLink?.uri);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return actionsResult;
|
|
81
|
+
}
|
|
82
|
+
async requestAdditionalInformation(requestUri) {
|
|
83
|
+
const additionalInformationOptions = {
|
|
84
|
+
url: requestUri,
|
|
85
|
+
headers: {
|
|
86
|
+
accept: 'application/json',
|
|
87
|
+
'x-anonymous': true
|
|
88
|
+
},
|
|
89
|
+
responseType: 'json'
|
|
90
|
+
};
|
|
91
|
+
const additionalInformationResponse = await request.get(additionalInformationOptions);
|
|
92
|
+
return additionalInformationResponse.body ? additionalInformationResponse.body : additionalInformationResponse;
|
|
93
|
+
}
|
|
64
94
|
}
|
|
65
95
|
_FlowRunGetCommand_instances = new WeakSet(), _FlowRunGetCommand_initOptions = function _FlowRunGetCommand_initOptions() {
|
|
66
96
|
this.options.unshift({
|
|
@@ -71,18 +101,27 @@ _FlowRunGetCommand_instances = new WeakSet(), _FlowRunGetCommand_initOptions = f
|
|
|
71
101
|
option: '-e, --environmentName <environmentName>'
|
|
72
102
|
}, {
|
|
73
103
|
option: '--includeTriggerInformation'
|
|
104
|
+
}, {
|
|
105
|
+
option: '--withTrigger'
|
|
106
|
+
}, {
|
|
107
|
+
option: '--withActions [withActions]'
|
|
74
108
|
});
|
|
75
109
|
}, _FlowRunGetCommand_initValidators = function _FlowRunGetCommand_initValidators() {
|
|
76
110
|
this.validators.push(async (args) => {
|
|
77
111
|
if (!validation.isValidGuid(args.options.flowName)) {
|
|
78
112
|
return `${args.options.flowName} is not a valid GUID`;
|
|
79
113
|
}
|
|
114
|
+
if (args.options.withActions && (typeof args.options.withActions !== 'string' && typeof args.options.withActions !== 'boolean')) {
|
|
115
|
+
return 'the withActions parameter must be a string or boolean';
|
|
116
|
+
}
|
|
80
117
|
return true;
|
|
81
118
|
});
|
|
82
119
|
}, _FlowRunGetCommand_initTelemetry = function _FlowRunGetCommand_initTelemetry() {
|
|
83
120
|
this.telemetry.push((args) => {
|
|
84
121
|
Object.assign(this.telemetryProperties, {
|
|
85
|
-
includeTriggerInformation: !!args.options.includeTriggerInformation
|
|
122
|
+
includeTriggerInformation: !!args.options.includeTriggerInformation,
|
|
123
|
+
withTrigger: !!args.options.withTrigger,
|
|
124
|
+
withActions: typeof args.options.withActions !== 'undefined'
|
|
86
125
|
});
|
|
87
126
|
});
|
|
88
127
|
};
|
|
@@ -32,6 +32,14 @@ class SpoGroupMemberAddCommand extends SpoCommand {
|
|
|
32
32
|
}
|
|
33
33
|
async commandAction(logger, args) {
|
|
34
34
|
try {
|
|
35
|
+
if (args.options.aadGroupIds) {
|
|
36
|
+
args.options.entraGroupIds = args.options.aadGroupIds;
|
|
37
|
+
this.warn(logger, `Option 'aadGroupIds' is deprecated. Please use 'entraGroupIds' instead`);
|
|
38
|
+
}
|
|
39
|
+
if (args.options.aadGroupNames) {
|
|
40
|
+
args.options.entraGroupNames = args.options.aadGroupNames;
|
|
41
|
+
this.warn(logger, `Option 'aadGroupNames' is deprecated. Please use 'entraGroupNames' instead`);
|
|
42
|
+
}
|
|
35
43
|
const groupId = await this.getGroupId(args, logger);
|
|
36
44
|
const resolvedUsernameList = await this.getValidUsers(args, logger);
|
|
37
45
|
if (this.verbose) {
|
|
@@ -82,7 +90,7 @@ class SpoGroupMemberAddCommand extends SpoCommand {
|
|
|
82
90
|
await logger.logToStderr('Checking if the specified users and groups exist');
|
|
83
91
|
}
|
|
84
92
|
const validUserNames = [];
|
|
85
|
-
const identifiers = args.options.userNames ?? args.options.emails ?? args.options.
|
|
93
|
+
const identifiers = args.options.userNames ?? args.options.emails ?? args.options.entraGroupIds ?? args.options.entraGroupNames ?? args.options.userIds.toString();
|
|
86
94
|
await Promise.all(identifiers.split(',').map(async (identifier) => {
|
|
87
95
|
const trimmedIdentifier = identifier.trim();
|
|
88
96
|
try {
|
|
@@ -96,10 +104,10 @@ class SpoGroupMemberAddCommand extends SpoCommand {
|
|
|
96
104
|
else if (args.options.userNames) {
|
|
97
105
|
validUserNames.push(trimmedIdentifier);
|
|
98
106
|
}
|
|
99
|
-
else if (args.options.
|
|
107
|
+
else if (args.options.entraGroupIds) {
|
|
100
108
|
validUserNames.push(trimmedIdentifier);
|
|
101
109
|
}
|
|
102
|
-
else if (args.options.
|
|
110
|
+
else if (args.options.entraGroupNames) {
|
|
103
111
|
if (this.verbose) {
|
|
104
112
|
await logger.logToStderr(`Getting ID of Azure AD group ${trimmedIdentifier}`);
|
|
105
113
|
}
|
|
@@ -135,7 +143,9 @@ _SpoGroupMemberAddCommand_instances = new WeakSet(), _SpoGroupMemberAddCommand_i
|
|
|
135
143
|
userNames: typeof args.options.userNames !== 'undefined',
|
|
136
144
|
emails: typeof args.options.emails !== 'undefined',
|
|
137
145
|
userIds: typeof args.options.userIds !== 'undefined',
|
|
146
|
+
entraGroupIds: typeof args.options.entraGroupIds !== 'undefined',
|
|
138
147
|
aadGroupIds: typeof args.options.aadGroupIds !== 'undefined',
|
|
148
|
+
entraGroupNames: typeof args.options.entraGroupNames !== 'undefined',
|
|
139
149
|
aadGroupNames: typeof args.options.aadGroupNames !== 'undefined'
|
|
140
150
|
});
|
|
141
151
|
});
|
|
@@ -152,8 +162,12 @@ _SpoGroupMemberAddCommand_instances = new WeakSet(), _SpoGroupMemberAddCommand_i
|
|
|
152
162
|
option: '--emails [emails]'
|
|
153
163
|
}, {
|
|
154
164
|
option: '--userIds [userIds]'
|
|
165
|
+
}, {
|
|
166
|
+
option: '--entraGroupIds [entraGroupIds]'
|
|
155
167
|
}, {
|
|
156
168
|
option: '--aadGroupIds [aadGroupIds]'
|
|
169
|
+
}, {
|
|
170
|
+
option: '--entraGroupNames [entraGroupNames]'
|
|
157
171
|
}, {
|
|
158
172
|
option: '--aadGroupNames [aadGroupNames]'
|
|
159
173
|
});
|
|
@@ -176,13 +190,16 @@ _SpoGroupMemberAddCommand_instances = new WeakSet(), _SpoGroupMemberAddCommand_i
|
|
|
176
190
|
if (args.options.emails && args.options.emails.split(',').some(e => !validation.isValidUserPrincipalName(e))) {
|
|
177
191
|
return `${args.options.emails} contains one or more invalid email addresses`;
|
|
178
192
|
}
|
|
193
|
+
if (args.options.entraGroupIds && args.options.entraGroupIds.split(',').some(e => !validation.isValidGuid(e))) {
|
|
194
|
+
return `${args.options.entraGroupIds} contains one or more invalid GUIDs`;
|
|
195
|
+
}
|
|
179
196
|
if (args.options.aadGroupIds && args.options.aadGroupIds.split(',').some(e => !validation.isValidGuid(e))) {
|
|
180
197
|
return `${args.options.aadGroupIds} contains one or more invalid GUIDs`;
|
|
181
198
|
}
|
|
182
199
|
return true;
|
|
183
200
|
});
|
|
184
201
|
}, _SpoGroupMemberAddCommand_initOptionSets = function _SpoGroupMemberAddCommand_initOptionSets() {
|
|
185
|
-
this.optionSets.push({ options: ['groupId', 'groupName'] }, { options: ['userNames', 'emails', 'userIds', 'aadGroupIds', 'aadGroupNames'] });
|
|
202
|
+
this.optionSets.push({ options: ['groupId', 'groupName'] }, { options: ['userNames', 'emails', 'userIds', 'entraGroupIds', 'aadGroupIds', 'entraGroupNames', 'aadGroupNames'] });
|
|
186
203
|
};
|
|
187
204
|
export default new SpoGroupMemberAddCommand();
|
|
188
205
|
//# sourceMappingURL=group-member-add.js.map
|
|
@@ -45,6 +45,14 @@ class SpoGroupMemberRemoveCommand extends SpoCommand {
|
|
|
45
45
|
return userOutput.userPrincipalName;
|
|
46
46
|
}
|
|
47
47
|
async commandAction(logger, args) {
|
|
48
|
+
if (args.options.aadGroupId) {
|
|
49
|
+
args.options.entraGroupId = args.options.aadGroupId;
|
|
50
|
+
this.warn(logger, `Option 'aadGroupId' is deprecated. Please use 'entraGroupId' instead`);
|
|
51
|
+
}
|
|
52
|
+
if (args.options.aadGroupName) {
|
|
53
|
+
args.options.entraGroupName = args.options.aadGroupName;
|
|
54
|
+
this.warn(logger, `Option 'aadGroupName' is deprecated. Please use 'entraGroupName' instead`);
|
|
55
|
+
}
|
|
48
56
|
if (args.options.force) {
|
|
49
57
|
if (this.debug) {
|
|
50
58
|
await logger.logToStderr('Confirmation bypassed by entering confirm option. Removing the user from SharePoint Group...');
|
|
@@ -52,7 +60,7 @@ class SpoGroupMemberRemoveCommand extends SpoCommand {
|
|
|
52
60
|
await this.removeUserfromSPGroup(logger, args);
|
|
53
61
|
}
|
|
54
62
|
else {
|
|
55
|
-
const result = await cli.promptForConfirmation({ message: `Are you sure you want to remove user ${args.options.userName || args.options.userId || args.options.email || args.options.
|
|
63
|
+
const result = await cli.promptForConfirmation({ message: `Are you sure you want to remove user ${args.options.userName || args.options.userId || args.options.email || args.options.entraGroupId || args.options.entraGroupName} from the SharePoint group?` });
|
|
56
64
|
if (result) {
|
|
57
65
|
await this.removeUserfromSPGroup(logger, args);
|
|
58
66
|
}
|
|
@@ -60,7 +68,7 @@ class SpoGroupMemberRemoveCommand extends SpoCommand {
|
|
|
60
68
|
}
|
|
61
69
|
async removeUserfromSPGroup(logger, args) {
|
|
62
70
|
if (this.verbose) {
|
|
63
|
-
await logger.logToStderr(`Removing User ${args.options.userName || args.options.email || args.options.userId || args.options.
|
|
71
|
+
await logger.logToStderr(`Removing User ${args.options.userName || args.options.email || args.options.userId || args.options.entraGroupId || args.options.entraGroupName} from Group: ${args.options.groupId || args.options.groupName}`);
|
|
64
72
|
}
|
|
65
73
|
let requestUrl = `${args.options.webUrl}/_api/web/sitegroups/${args.options.groupId
|
|
66
74
|
? `GetById('${args.options.groupId}')`
|
|
@@ -74,8 +82,8 @@ class SpoGroupMemberRemoveCommand extends SpoCommand {
|
|
|
74
82
|
requestUrl += `/users/removeByLoginName(@LoginName)?@LoginName='${formatting.encodeQueryParameter(loginName)}'`;
|
|
75
83
|
}
|
|
76
84
|
else {
|
|
77
|
-
const
|
|
78
|
-
requestUrl += `/users/RemoveById(${
|
|
85
|
+
const entraGroupId = await this.getGroupId(args);
|
|
86
|
+
requestUrl += `/users/RemoveById(${entraGroupId})`;
|
|
79
87
|
}
|
|
80
88
|
const requestOptions = {
|
|
81
89
|
url: requestUrl,
|
|
@@ -107,14 +115,14 @@ class SpoGroupMemberRemoveCommand extends SpoCommand {
|
|
|
107
115
|
const output = await cli.executeCommandWithOutput(SpoGroupMemberListCommand, { options: { ...options, _: [] } });
|
|
108
116
|
const getGroupMemberListOutput = JSON.parse(output.stdout);
|
|
109
117
|
let foundGroups;
|
|
110
|
-
if (args.options.
|
|
111
|
-
foundGroups = getGroupMemberListOutput.filter((x) => { return x.LoginName.indexOf(args.options.
|
|
118
|
+
if (args.options.entraGroupId) {
|
|
119
|
+
foundGroups = getGroupMemberListOutput.filter((x) => { return x.LoginName.indexOf(args.options.entraGroupId) > -1 && (x.LoginName.indexOf("c:0o.c|federateddirectoryclaimprovider|") === 0 || x.LoginName.indexOf("c:0t.c|tenant|") === 0); });
|
|
112
120
|
}
|
|
113
121
|
else {
|
|
114
|
-
foundGroups = getGroupMemberListOutput.filter((x) => { return x.Title === args.options.
|
|
122
|
+
foundGroups = getGroupMemberListOutput.filter((x) => { return x.Title === args.options.entraGroupName && (x.LoginName.indexOf("c:0o.c|federateddirectoryclaimprovider|") === 0 || x.LoginName.indexOf("c:0t.c|tenant|") === 0); });
|
|
115
123
|
}
|
|
116
124
|
if (foundGroups.length === 0) {
|
|
117
|
-
throw `The Azure AD group ${args.options.
|
|
125
|
+
throw `The Azure AD group ${args.options.entraGroupId || args.options.entraGroupName} is not found in SharePoint group ${args.options.groupId || args.options.groupName}`;
|
|
118
126
|
}
|
|
119
127
|
return foundGroups[0].Id;
|
|
120
128
|
}
|
|
@@ -127,8 +135,10 @@ _SpoGroupMemberRemoveCommand_instances = new WeakSet(), _SpoGroupMemberRemoveCom
|
|
|
127
135
|
userName: (!(!args.options.userName)).toString(),
|
|
128
136
|
email: (!(!args.options.email)).toString(),
|
|
129
137
|
userId: (!(!args.options.userId)).toString(),
|
|
138
|
+
entraGroupId: (!(!args.options.entraGroupId)).toString(),
|
|
130
139
|
aadGroupId: (!(!args.options.groupId)).toString(),
|
|
131
|
-
|
|
140
|
+
entraGroupName: (!(!args.options.entraGroupName)).toString(),
|
|
141
|
+
aadGroupName: (!(!args.options.aadGroupName)).toString(),
|
|
132
142
|
force: (!(!args.options.force)).toString()
|
|
133
143
|
});
|
|
134
144
|
});
|
|
@@ -145,8 +155,12 @@ _SpoGroupMemberRemoveCommand_instances = new WeakSet(), _SpoGroupMemberRemoveCom
|
|
|
145
155
|
option: '--email [email]'
|
|
146
156
|
}, {
|
|
147
157
|
option: '--userId [userId]'
|
|
158
|
+
}, {
|
|
159
|
+
option: '--entraGroupId [entraGroupId]'
|
|
148
160
|
}, {
|
|
149
161
|
option: '--aadGroupId [aadGroupId]'
|
|
162
|
+
}, {
|
|
163
|
+
option: '--entraGroupName [entraGroupName]'
|
|
150
164
|
}, {
|
|
151
165
|
option: '--aadGroupName [aadGroupName]'
|
|
152
166
|
}, {
|
|
@@ -166,13 +180,16 @@ _SpoGroupMemberRemoveCommand_instances = new WeakSet(), _SpoGroupMemberRemoveCom
|
|
|
166
180
|
if (args.options.email && !validation.isValidUserPrincipalName(args.options.email)) {
|
|
167
181
|
return `${args.options.email} is not a valid email`;
|
|
168
182
|
}
|
|
183
|
+
if (args.options.entraGroupId && !validation.isValidGuid(args.options.entraGroupId)) {
|
|
184
|
+
return `${args.options.entraGroupId} is not a valid GUID`;
|
|
185
|
+
}
|
|
169
186
|
if (args.options.aadGroupId && !validation.isValidGuid(args.options.aadGroupId)) {
|
|
170
187
|
return `${args.options.aadGroupId} is not a valid GUID`;
|
|
171
188
|
}
|
|
172
189
|
return validation.isValidSharePointUrl(args.options.webUrl);
|
|
173
190
|
});
|
|
174
191
|
}, _SpoGroupMemberRemoveCommand_initOptionSets = function _SpoGroupMemberRemoveCommand_initOptionSets() {
|
|
175
|
-
this.optionSets.push({ options: ['groupName', 'groupId'] }, { options: ['userName', 'email', 'userId', 'aadGroupId', 'aadGroupName'] });
|
|
192
|
+
this.optionSets.push({ options: ['groupName', 'groupId'] }, { options: ['userName', 'email', 'userId', 'entraGroupId', 'aadGroupId', 'entraGroupName', 'aadGroupName'] });
|
|
176
193
|
};
|
|
177
194
|
export default new SpoGroupMemberRemoveCommand();
|
|
178
195
|
//# sourceMappingURL=group-member-remove.js.map
|
|
@@ -25,12 +25,16 @@ class SpoUserEnsureCommand extends SpoCommand {
|
|
|
25
25
|
__classPrivateFieldGet(this, _SpoUserEnsureCommand_instances, "m", _SpoUserEnsureCommand_initOptionSets).call(this);
|
|
26
26
|
}
|
|
27
27
|
async commandAction(logger, args) {
|
|
28
|
+
if (args.options.aadId) {
|
|
29
|
+
args.options.entraId = args.options.aadId;
|
|
30
|
+
this.warn(logger, `Option 'aadId' is deprecated. Please use 'entraId' instead`);
|
|
31
|
+
}
|
|
28
32
|
if (this.verbose) {
|
|
29
|
-
await logger.logToStderr(`Ensuring user ${args.options.
|
|
33
|
+
await logger.logToStderr(`Ensuring user ${args.options.entraId || args.options.userName} at site ${args.options.webUrl}`);
|
|
30
34
|
}
|
|
31
35
|
try {
|
|
32
36
|
const requestBody = {
|
|
33
|
-
logonName: args.options.userName || await this.getUpnByUserId(args.options.
|
|
37
|
+
logonName: args.options.userName || await this.getUpnByUserId(args.options.entraId, logger)
|
|
34
38
|
};
|
|
35
39
|
const requestOptions = {
|
|
36
40
|
url: `${args.options.webUrl}/_api/web/ensureuser`,
|
|
@@ -47,16 +51,17 @@ class SpoUserEnsureCommand extends SpoCommand {
|
|
|
47
51
|
this.handleRejectedODataJsonPromise(err);
|
|
48
52
|
}
|
|
49
53
|
}
|
|
50
|
-
async getUpnByUserId(
|
|
54
|
+
async getUpnByUserId(entraId, logger) {
|
|
51
55
|
if (this.verbose) {
|
|
52
|
-
await logger.logToStderr(`Retrieving user principal name for user with id ${
|
|
56
|
+
await logger.logToStderr(`Retrieving user principal name for user with id ${entraId}`);
|
|
53
57
|
}
|
|
54
|
-
return await aadUser.getUpnByUserId(
|
|
58
|
+
return await aadUser.getUpnByUserId(entraId);
|
|
55
59
|
}
|
|
56
60
|
}
|
|
57
61
|
_SpoUserEnsureCommand_instances = new WeakSet(), _SpoUserEnsureCommand_initTelemetry = function _SpoUserEnsureCommand_initTelemetry() {
|
|
58
62
|
this.telemetry.push((args) => {
|
|
59
63
|
Object.assign(this.telemetryProperties, {
|
|
64
|
+
entraId: typeof args.options.entraId !== 'undefined',
|
|
60
65
|
aadId: typeof args.options.aadId !== 'undefined',
|
|
61
66
|
userName: typeof args.options.userName !== 'undefined'
|
|
62
67
|
});
|
|
@@ -64,6 +69,8 @@ _SpoUserEnsureCommand_instances = new WeakSet(), _SpoUserEnsureCommand_initTelem
|
|
|
64
69
|
}, _SpoUserEnsureCommand_initOptions = function _SpoUserEnsureCommand_initOptions() {
|
|
65
70
|
this.options.unshift({
|
|
66
71
|
option: '-u, --webUrl <webUrl>'
|
|
72
|
+
}, {
|
|
73
|
+
option: '--entraId [entraId]'
|
|
67
74
|
}, {
|
|
68
75
|
option: '--aadId [aadId]'
|
|
69
76
|
}, {
|
|
@@ -75,6 +82,9 @@ _SpoUserEnsureCommand_instances = new WeakSet(), _SpoUserEnsureCommand_initTelem
|
|
|
75
82
|
if (isValidSharePointUrl !== true) {
|
|
76
83
|
return isValidSharePointUrl;
|
|
77
84
|
}
|
|
85
|
+
if (args.options.entraId && !validation.isValidGuid(args.options.entraId)) {
|
|
86
|
+
return `${args.options.entraId} is not a valid GUID.`;
|
|
87
|
+
}
|
|
78
88
|
if (args.options.aadId && !validation.isValidGuid(args.options.aadId)) {
|
|
79
89
|
return `${args.options.aadId} is not a valid GUID.`;
|
|
80
90
|
}
|
|
@@ -84,7 +94,7 @@ _SpoUserEnsureCommand_instances = new WeakSet(), _SpoUserEnsureCommand_initTelem
|
|
|
84
94
|
return true;
|
|
85
95
|
});
|
|
86
96
|
}, _SpoUserEnsureCommand_initOptionSets = function _SpoUserEnsureCommand_initOptionSets() {
|
|
87
|
-
this.optionSets.push({ options: ['aadId', 'userName'] });
|
|
97
|
+
this.optionSets.push({ options: ['entraId', 'aadId', 'userName'] });
|
|
88
98
|
};
|
|
89
99
|
export default new SpoUserEnsureCommand();
|
|
90
100
|
//# sourceMappingURL=user-ensure.js.map
|
|
@@ -25,7 +25,14 @@ m365 flow run get [options]
|
|
|
25
25
|
: The name of the environment where the flow is located
|
|
26
26
|
|
|
27
27
|
`--includeTriggerInformation`
|
|
28
|
+
: (deprecated. Use option `withTrigger` instead) If specified, include information about the trigger details
|
|
29
|
+
|
|
30
|
+
`--withTrigger`
|
|
28
31
|
: If specified, include information about the trigger details
|
|
32
|
+
|
|
33
|
+
`--withActions [withActions]`
|
|
34
|
+
: If specified, include information about all actions when no action names are specified, or provide a specified list of actions separated by commas to include only the relevant action details
|
|
35
|
+
|
|
29
36
|
```
|
|
30
37
|
|
|
31
38
|
<Global />
|
|
@@ -44,7 +51,7 @@ If the Microsoft Flow with the name you specified doesn't exist, you will get th
|
|
|
44
51
|
|
|
45
52
|
If the run with the name you specified doesn't exist, you will get the `The provided workflow run name is not valid.` error.
|
|
46
53
|
|
|
47
|
-
If the option `
|
|
54
|
+
If the option `withTrigger` is specified, but the trigger does not contain an outputsLink such as for example with a `Recurrence` trigger, this option will be ignored.
|
|
48
55
|
|
|
49
56
|
## Examples
|
|
50
57
|
|
|
@@ -57,7 +64,19 @@ m365 flow run get --environmentName Default-d87a7535-dd31-4437-bfe1-95340acd55c5
|
|
|
57
64
|
Get information about the given run of the specified Power Automate flow including trigger information
|
|
58
65
|
|
|
59
66
|
```sh
|
|
60
|
-
m365 flow run get --environmentName Default-d87a7535-dd31-4437-bfe1-95340acd55c5 --flowName 5923cb07-ce1a-4a5c-ab81-257ce820109a --name 08586653536760200319026785874CU62 --
|
|
67
|
+
m365 flow run get --environmentName Default-d87a7535-dd31-4437-bfe1-95340acd55c5 --flowName 5923cb07-ce1a-4a5c-ab81-257ce820109a --name 08586653536760200319026785874CU62 --withTrigger
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Get information about the given run of the specified Power Automate flow including details about all associated actions.
|
|
71
|
+
|
|
72
|
+
```sh
|
|
73
|
+
m365 flow run get --environmentName Default-d87a7535-dd31-4437-bfe1-95340acd55c5 --flowName 5923cb07-ce1a-4a5c-ab81-257ce820109a --name 08586653536760200319026785874CU62 --withActions
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Get information about the given run of the specified Power Automate flow including exclusively the details of 'Action_Internal_Name1' and 'Action_Internal_Name2' actions
|
|
77
|
+
|
|
78
|
+
```sh
|
|
79
|
+
m365 flow run get --environmentName Default-d87a7535-dd31-4437-bfe1-95340acd55c5 --flowName 5923cb07-ce1a-4a5c-ab81-257ce820109a --name 08586653536760200319026785874CU62 --withActions "Action_Internal_Name1,Action_Internal_Name2"
|
|
61
80
|
```
|
|
62
81
|
|
|
63
82
|
## Response
|
|
@@ -157,9 +176,9 @@ m365 flow run get --environmentName Default-d87a7535-dd31-4437-bfe1-95340acd55c5
|
|
|
157
176
|
</TabItem>
|
|
158
177
|
</Tabs>
|
|
159
178
|
|
|
160
|
-
### `
|
|
179
|
+
### `withTrigger` response
|
|
161
180
|
|
|
162
|
-
When using the option `
|
|
181
|
+
When using the option `withTrigger`, the response for the json-output will differ.
|
|
163
182
|
|
|
164
183
|
<Tabs>
|
|
165
184
|
<TabItem value="JSON">
|
|
@@ -233,3 +252,147 @@ When using the option `includeTriggerInformation`, the response for the json-out
|
|
|
233
252
|
</TabItem>
|
|
234
253
|
</Tabs>
|
|
235
254
|
|
|
255
|
+
### `withActions` response
|
|
256
|
+
|
|
257
|
+
When using the option `withActions`, the response for the json-output will differ.
|
|
258
|
+
|
|
259
|
+
<Tabs>
|
|
260
|
+
<TabItem value="JSON">
|
|
261
|
+
|
|
262
|
+
```json
|
|
263
|
+
{
|
|
264
|
+
"name": "08585236861638480597867166179CU104",
|
|
265
|
+
"id": "/providers/Microsoft.ProcessSimple/environments/Default-e1dd4023-a656-480a-8a0e-c1b1eec51e1d/flows/24335774-daf6-4183-acb7-f5155c2cd2fe/runs/08585236861638480597867166179CU104",
|
|
266
|
+
"type": "Microsoft.ProcessSimple/environments/flows/runs",
|
|
267
|
+
"properties": {
|
|
268
|
+
"actions":{
|
|
269
|
+
"Compose": {
|
|
270
|
+
"input": "Test",
|
|
271
|
+
"inputsLink": {
|
|
272
|
+
"uri": "https://prod-255.westeurope.logic.azure.com:443/workflows/88b5146587d144ea85efb15683c4e58f/runs/08586652586741142222645090602CU35/actions/Compose/contents/ActionInputs?api-version=2016-06-01&se=2023-12-14T19%3A00%3A00.0000000Z&sp=%2Fruns%2F08586652586741142222645090602CU35%2Factions%2FCompose%2Fcontents%2FActionInputs%2Fread&sv=1.0&sig=wYD6bMHjdoOawYAMTHqpmyILowLKRCkFEfsNxi1NFzw",
|
|
273
|
+
"contentVersion": "test==",
|
|
274
|
+
"contentSize": 6,
|
|
275
|
+
"contentHash": {
|
|
276
|
+
"algorithm": "md5",
|
|
277
|
+
"value": "test=="
|
|
278
|
+
}
|
|
279
|
+
},
|
|
280
|
+
"output": "Test",
|
|
281
|
+
"outputsLink": {
|
|
282
|
+
"uri": "https://prod-255.westeurope.logic.azure.com:443/workflows/88b5146587d144ea85efb15683c4e58f/runs/08586652586741142222645090602CU35/actions/Compose/contents/ActionOutputs?api-version=2016-06-01&se=2023-12-14T19%3A00%3A00.0000000Z&sp=%2Fruns%2F08586652586741142222645090602CU35%2Factions%2FCompose%2Fcontents%2FActionOutputs%2Fread&sv=1.0&sig=KoI4_RAEVNFUgymktOFxvfb5mCoIKR2WCYGwexjD7kY",
|
|
283
|
+
"contentVersion": "test==",
|
|
284
|
+
"contentSize": 6,
|
|
285
|
+
"contentHash": {
|
|
286
|
+
"algorithm": "md5",
|
|
287
|
+
"value": "test=="
|
|
288
|
+
}
|
|
289
|
+
},
|
|
290
|
+
"startTime": "2023-11-17T21:06:14.466889Z",
|
|
291
|
+
"endTime": "2023-11-17T21:06:14.4676104Z",
|
|
292
|
+
"correlation": {
|
|
293
|
+
"actionTrackingId": "dabed750-0ec4-4c34-98f5-cc3695e0811e",
|
|
294
|
+
"clientTrackingId": "08585013686846794051719443325CU251",
|
|
295
|
+
"clientKeywords": [
|
|
296
|
+
"resubmitFlow"
|
|
297
|
+
]
|
|
298
|
+
},
|
|
299
|
+
"status": "Succeeded",
|
|
300
|
+
"code": "OK"
|
|
301
|
+
}
|
|
302
|
+
},
|
|
303
|
+
"startTime": "2023-03-04T09:05:21.8066368Z",
|
|
304
|
+
"endTime": "2023-03-04T09:05:22.5880202Z",
|
|
305
|
+
"status": "Succeeded",
|
|
306
|
+
"correlation": {
|
|
307
|
+
"clientTrackingId": "08585236861638480598867166179CU131"
|
|
308
|
+
},
|
|
309
|
+
"trigger": {
|
|
310
|
+
"name": "When_an_email_is_flagged_(V4)",
|
|
311
|
+
"inputsLink": {
|
|
312
|
+
"uri": "https://prod-130.westeurope.logic.azure.com:443/workflows/3ebadb794f6641e0b7f4fda131cdfb0b/runs/08585236861638480597867166179CU104/contents/TriggerInputs?api-version=2016-06-01&se=2023-03-04T14%3A00%3A00.0000000Z&sp=%2Fruns%2F08585236861638480597867166179CU104%2Fcontents%2FTriggerInputs%2Fread&sv=1.0&sig=",
|
|
313
|
+
"contentVersion": "2v/VLXFrKV6JvwSdcN7aHg==",
|
|
314
|
+
"contentSize": 343,
|
|
315
|
+
"contentHash": {
|
|
316
|
+
"algorithm": "md5",
|
|
317
|
+
"value": "2v/VLXFrKV6JvwSdcN7aHg=="
|
|
318
|
+
}
|
|
319
|
+
},
|
|
320
|
+
"outputsLink": {
|
|
321
|
+
"uri": "https://prod-130.westeurope.logic.azure.com:443/workflows/3ebadb794f6641e0b7f4fda131cdfb0b/runs/08585236861638480597867166179CU104/contents/TriggerOutputs?api-version=2016-06-01&se=2023-03-04T14%3A00%3A00.0000000Z&sp=%2Fruns%2F08585236861638480597867166179CU104%2Fcontents%2FTriggerOutputs%2Fread&sv=1.0&sig=",
|
|
322
|
+
"contentVersion": "AHZEeWNlQ0bLe48yDmpzrQ==",
|
|
323
|
+
"contentSize": 3478,
|
|
324
|
+
"contentHash": {
|
|
325
|
+
"algorithm": "md5",
|
|
326
|
+
"value": "AHZEeWNlQ0bLe48yDmpzrQ=="
|
|
327
|
+
}
|
|
328
|
+
},
|
|
329
|
+
"startTime": "2023-03-04T09:05:21.6192576Z",
|
|
330
|
+
"endTime": "2023-03-04T09:05:21.7442626Z",
|
|
331
|
+
"scheduledTime": "2023-03-04T09:05:21.573561Z",
|
|
332
|
+
"originHistoryName": "08585236861638480598867166179CU131",
|
|
333
|
+
"correlation": {
|
|
334
|
+
"clientTrackingId": "08585236861638480598867166179CU131"
|
|
335
|
+
},
|
|
336
|
+
"code": "OK",
|
|
337
|
+
"status": "Succeeded"
|
|
338
|
+
}
|
|
339
|
+
},
|
|
340
|
+
"startTime": "2023-03-04T09:05:21.8066368Z",
|
|
341
|
+
"endTime": "2023-03-04T09:05:22.5880202Z",
|
|
342
|
+
"status": "Succeeded",
|
|
343
|
+
"triggerName": "When_an_email_is_flagged_(V4)",
|
|
344
|
+
"triggerInformation": {
|
|
345
|
+
"from": "john@contoso.com",
|
|
346
|
+
"toRecipients": "doe@contoso.com",
|
|
347
|
+
"subject": "Dummy email",
|
|
348
|
+
"body": "<html><head>\r\\\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"></head><body><p>This is dummy content</p></body></html>",
|
|
349
|
+
"importance": "normal",
|
|
350
|
+
"bodyPreview": "This is dummy content",
|
|
351
|
+
"hasAttachments": false,
|
|
352
|
+
"id": "AAMkADgzN2Q1NThiLTI0NjYtNGIxYS05MDdjLTg1OWQxNzgwZGM2ZgBGAAAAAAC6jQfUzacTSIHqMw2yacnUBwBiOC8xvYmdT6G2E_hLMK5kAAAAAAEMAABiOC8xvYmdT6G2E_hLMK5kAALUqy81AAA=",
|
|
353
|
+
"internetMessageId": "<DB7PR03MB5018879914324FC65695809FE1AD9@DB7PR03MB5018.eurprd03.prod.outlook.com>",
|
|
354
|
+
"conversationId": "AAQkADgzN2Q1NThiLTI0NjYtNGIxYS05MDdjLTg1OWQxNzgwZGM2ZgAQAMqP9zsK8a1CnIYEgHclLTk=",
|
|
355
|
+
"receivedDateTime": "2023-03-01T15:06:57+00:00",
|
|
356
|
+
"isRead": false,
|
|
357
|
+
"attachments": [],
|
|
358
|
+
"isHtml": true
|
|
359
|
+
},
|
|
360
|
+
"actions": {
|
|
361
|
+
"Compose": {
|
|
362
|
+
"input": "Test",
|
|
363
|
+
"inputsLink": {
|
|
364
|
+
"uri": "https://prod-255.westeurope.logic.azure.com:443/workflows/88b5146587d144ea85efb15683c4e58f/runs/08586652586741142222645090602CU35/actions/Compose/contents/ActionInputs?api-version=2016-06-01&se=2023-12-14T19%3A00%3A00.0000000Z&sp=%2Fruns%2F08586652586741142222645090602CU35%2Factions%2FCompose%2Fcontents%2FActionInputs%2Fread&sv=1.0&sig=wYD6bMHjdoOawYAMTHqpmyILowLKRCkFEfsNxi1NFzw",
|
|
365
|
+
"contentVersion": "test==",
|
|
366
|
+
"contentSize": 6,
|
|
367
|
+
"contentHash": {
|
|
368
|
+
"algorithm": "md5",
|
|
369
|
+
"value": "test=="
|
|
370
|
+
}
|
|
371
|
+
},
|
|
372
|
+
"output": "Test",
|
|
373
|
+
"outputsLink": {
|
|
374
|
+
"uri": "https://prod-255.westeurope.logic.azure.com:443/workflows/88b5146587d144ea85efb15683c4e58f/runs/08586652586741142222645090602CU35/actions/Compose/contents/ActionOutputs?api-version=2016-06-01&se=2023-12-14T19%3A00%3A00.0000000Z&sp=%2Fruns%2F08586652586741142222645090602CU35%2Factions%2FCompose%2Fcontents%2FActionOutputs%2Fread&sv=1.0&sig=KoI4_RAEVNFUgymktOFxvfb5mCoIKR2WCYGwexjD7kY",
|
|
375
|
+
"contentVersion": "test==",
|
|
376
|
+
"contentSize": 6,
|
|
377
|
+
"contentHash": {
|
|
378
|
+
"algorithm": "md5",
|
|
379
|
+
"value": "test=="
|
|
380
|
+
}
|
|
381
|
+
},
|
|
382
|
+
"startTime": "2023-11-17T21:06:14.466889Z",
|
|
383
|
+
"endTime": "2023-11-17T21:06:14.4676104Z",
|
|
384
|
+
"correlation": {
|
|
385
|
+
"actionTrackingId": "dabed750-0ec4-4c34-98f5-cc3695e0811e",
|
|
386
|
+
"clientTrackingId": "08585013686846794051719443325CU251",
|
|
387
|
+
"clientKeywords": [
|
|
388
|
+
"resubmitFlow"
|
|
389
|
+
]
|
|
390
|
+
},
|
|
391
|
+
"status": "Succeeded",
|
|
392
|
+
"code": "OK"
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
```
|
|
397
|
+
</TabItem>
|
|
398
|
+
</Tabs>
|
|
@@ -33,18 +33,24 @@ m365 spo group member add [options]
|
|
|
33
33
|
`--userIds [userIds]`
|
|
34
34
|
: The user Id of the user to add as a member. (Id of the site user, for example: 14) If multiple users need to be added, the Ids have to be comma-separated. Specify either `userIds`, `userNames`, `emails`, `aadGroupIds` or `aadGroupNames`.
|
|
35
35
|
|
|
36
|
+
`--entraGroupIds [entraGroupIds]`
|
|
37
|
+
: The object Id of the Entra group to add as a member. If multiple groups need to be added, the Ids have to be comma-separated. Specify either `userIds`, `userNames`, `emails`, `aadGroupIds`, `entraGroupIds`, `aadGroupNames`, or `entraGroupNames`.
|
|
38
|
+
|
|
36
39
|
`--aadGroupIds [aadGroupIds]`
|
|
37
|
-
: The object Id of the Azure AD group to add as a member. If multiple groups need to be added, the Ids have to be comma-separated. Specify either `userIds`, `userNames`, `emails`, `aadGroupIds` or `
|
|
40
|
+
: (deprecated. Use `entraGroupIds` instead) The object Id of the Azure AD group to add as a member. If multiple groups need to be added, the Ids have to be comma-separated. Specify either `userIds`, `userNames`, `emails`, `aadGroupIds`, `entraGroupIds`, `aadGroupNames`, or `entraGroupNames`.
|
|
41
|
+
|
|
42
|
+
`--entraGroupNames [entraGroupNames]`
|
|
43
|
+
: The name of the Entra group to add as a member. If multiple groups need to be added, they have to be comma-separated. Specify either `userIds`, `userNames`, `emails`, `aadGroupIds`, `entraGroupIds`, `aadGroupNames`, or `entraGroupNames`.
|
|
38
44
|
|
|
39
45
|
`--aadGroupNames [aadGroupNames]`
|
|
40
|
-
: The name of the Azure AD group to add as a member. If multiple groups need to be added, they have to be comma-separated. Specify either `userIds`, `userNames`, `emails`, `aadGroupIds` or `
|
|
46
|
+
: (deprecated. Use `entraGroupNames` instead) The name of the Azure AD group to add as a member. If multiple groups need to be added, they have to be comma-separated. Specify either `userIds`, `userNames`, `emails`, `aadGroupIds`, `entraGroupIds`, `aadGroupNames`, or `entraGroupNames`.
|
|
41
47
|
```
|
|
42
48
|
|
|
43
49
|
<Global />
|
|
44
50
|
|
|
45
51
|
## Remarks
|
|
46
52
|
|
|
47
|
-
For the `userIds`, `userNames`, `emails`, `aadGroupIds` or `
|
|
53
|
+
For the `userIds`, `userNames`, `emails`, `aadGroupIds`, `entraGroupIds`, `aadGroupNames`, or `entraGroupNames` options you can specify multiple values by separating them with a comma. If one of the specified entries is not valid, the command will fail with an error message showing the list of invalid values.
|
|
48
54
|
|
|
49
55
|
## Examples
|
|
50
56
|
|
|
@@ -84,11 +90,17 @@ Add multiple users with the userIds parameter to a SharePoint group with the gro
|
|
|
84
90
|
m365 spo group member add --webUrl https://contoso.sharepoint.com/sites/SiteA --groupId 5 --userIds "5,12"
|
|
85
91
|
```
|
|
86
92
|
|
|
87
|
-
Add multiple users with the
|
|
93
|
+
Add multiple users with the entraGroupIds parameter to a SharePoint group with the groupId parameter.
|
|
94
|
+
|
|
95
|
+
```sh
|
|
96
|
+
m365 spo group member add --webUrl https://contoso.sharepoint.com/sites/SiteA --groupId 5 --entraGroupIds "f2fb2f10-cfd2-4054-8ffd-64533657a5ab,3e86049e-89e6-4c27-bccb-d7549f0bbd06"
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Add multiple users with the entraGroupNames parameter to a SharePoint group with the groupId parameter.
|
|
88
100
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
101
|
+
```sh
|
|
102
|
+
m365 spo group member add --webUrl https://contoso.sharepoint.com/sites/SiteA --groupId 5 --entraGroupNames "Azure group one, Azure group two"
|
|
103
|
+
```
|
|
92
104
|
|
|
93
105
|
## Response
|
|
94
106
|
|
|
@@ -31,11 +31,17 @@ m365 spo group member remove [options]
|
|
|
31
31
|
`--userId [userId]`
|
|
32
32
|
: The user Id (Id of the site user, eg. 14) of the user to remove as a member. Specify either `userName`, `email`, `userId`, `aadGroupId` or `aadGroupName`.
|
|
33
33
|
|
|
34
|
+
`--entraGroupId [entraGroupId]`
|
|
35
|
+
: The object Id of the Entra group to remove as a member. Specify either `userName`, `email`, `userId`, `aadGroupId`, `entraGroupId`, `aadGroupName`, or `entraGroupName`.
|
|
36
|
+
|
|
34
37
|
`--aadGroupId [aadGroupId]`
|
|
35
|
-
: The object Id of the Azure AD group to remove as a member. Specify either `userName`, `email`, `userId`, `aadGroupId` or `
|
|
38
|
+
: (deprecated. Use `entraGroupId` instead) The object Id of the Azure AD group to remove as a member. Specify either `userName`, `email`, `userId`, `aadGroupId`, `entraGroupId`, `aadGroupName`, or `entraGroupName`.
|
|
39
|
+
|
|
40
|
+
`--entraGroupName [entraGroupName]`
|
|
41
|
+
: The name of the Entra group to remove as a member. Specify either `userName`, `email`, `userId`, `aadGroupId`, `entraGroupId`, `aadGroupName`, or `entraGroupName`.
|
|
36
42
|
|
|
37
43
|
`--aadGroupName [aadGroupName]`
|
|
38
|
-
: The name of the Azure AD group to remove as a member. Specify either `userName`, `email`, `userId`, `aadGroupId` or `
|
|
44
|
+
: (deprecated. Use `entraGroupName` instead) The name of the Azure AD group to remove as a member. Specify either `userName`, `email`, `userId`, `aadGroupId`, `entraGroupId`, `aadGroupName`, or `entraGroupName`.
|
|
39
45
|
```
|
|
40
46
|
|
|
41
47
|
<Global />
|
|
@@ -60,16 +66,16 @@ Remove a user from a SharePoint group by email.
|
|
|
60
66
|
m365 spo group member remove --webUrl https://contoso.sharepoint.com/sites/SiteA --groupName "Site A Visitors" --userId 14
|
|
61
67
|
```
|
|
62
68
|
|
|
63
|
-
Remove an
|
|
69
|
+
Remove an Entra group from a SharePoint group based on the Entra group name on a given web.
|
|
64
70
|
|
|
65
71
|
```sh
|
|
66
|
-
m365 spo group member remove --webUrl https://contoso.sharepoint.com/sites/SiteA --groupId 5 --
|
|
72
|
+
m365 spo group member remove --webUrl https://contoso.sharepoint.com/sites/SiteA --groupId 5 --entraGroupName "Azure AD Security Group"
|
|
67
73
|
```
|
|
68
74
|
|
|
69
|
-
Remove an
|
|
75
|
+
Remove an Entra group from a SharePoint group based on the Entra group ID on a given web.
|
|
70
76
|
|
|
71
77
|
```sh
|
|
72
|
-
m365 spo group member remove --webUrl https://contoso.sharepoint.com/sites/SiteA --groupName "Site A Visitors" --
|
|
78
|
+
m365 spo group member remove --webUrl https://contoso.sharepoint.com/sites/SiteA --groupName "Site A Visitors" --entraGroupId "5786b8e8-c495-4734-b345-756733960730"
|
|
73
79
|
```
|
|
74
80
|
|
|
75
81
|
## Response
|