@pnp/cli-microsoft365 11.7.0-beta.b67a258 → 11.7.0-beta.bd906c5
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/config.js +1 -0
- package/dist/m365/entra/commands/user/user-license-add.js +2 -1
- package/dist/m365/entra/commands/user/user-license-list.js +4 -9
- package/dist/m365/entra/commands/user/user-license-remove.js +2 -1
- package/dist/m365/outlook/commands/calendar/calendar-add.js +85 -0
- package/dist/m365/outlook/commands/calendar/calendar-get.js +71 -0
- package/dist/m365/outlook/commands/calendar/calendar-remove.js +100 -0
- package/dist/m365/outlook/commands/calendargroup/calendargroup-set.js +115 -0
- package/dist/m365/outlook/commands/event/event-cancel.js +103 -0
- package/dist/m365/outlook/commands/event/event-list.js +115 -0
- package/dist/m365/outlook/commands/event/event-remove.js +104 -0
- package/dist/m365/outlook/commands.js +7 -0
- package/dist/m365/spfx/commands/SpfxCompatibilityMatrix.js +643 -0
- package/dist/m365/spfx/commands/project/DeployWorkflow.js +2 -2
- package/dist/m365/spfx/commands/project/project-azuredevops-pipeline-add.js +13 -1
- package/dist/m365/spfx/commands/project/project-doctor/doctor-1.23.0-rc.0.js +19 -0
- package/dist/m365/spfx/commands/project/project-doctor.js +2 -1
- package/dist/m365/spfx/commands/project/project-github-workflow-add.js +16 -1
- package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002021_DEVDEP_rushstack_eslint_config.js +2 -2
- package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002032_DEVDEP_typescript_eslint_parser.js +2 -2
- package/dist/m365/spfx/commands/project/project-upgrade/rules/FN015008_FILE_eslintrc_js.js +1 -1
- package/dist/m365/spfx/commands/project/project-upgrade/rules/FN015016_FILE_eslint_config_js.js +10 -0
- package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.23.0-rc.0.js +84 -0
- package/dist/m365/spfx/commands/project/project-upgrade.js +12 -11
- package/dist/m365/spfx/commands/spfx-doctor.js +5 -631
- package/dist/m365/teams/commands/chat/chat-message-list.js +43 -4
- package/dist/utils/calendar.js +37 -0
- package/dist/utils/calendarGroup.js +22 -0
- package/dist/utils/entraApp.js +9 -2
- package/dist/utils/spfx.js +59 -0
- package/docs/docs/cmd/entra/license/license-list.mdx +19 -0
- package/docs/docs/cmd/entra/m365group/m365group-conversation-list.mdx +19 -0
- package/docs/docs/cmd/entra/m365group/m365group-conversation-post-list.mdx +19 -0
- package/docs/docs/cmd/entra/user/user-groupmembership-list.mdx +19 -0
- package/docs/docs/cmd/entra/user/user-guest-add.mdx +19 -0
- package/docs/docs/cmd/entra/user/user-license-add.mdx +19 -0
- package/docs/docs/cmd/entra/user/user-license-list.mdx +18 -1
- package/docs/docs/cmd/entra/user/user-license-remove.mdx +21 -0
- package/docs/docs/cmd/entra/user/user-password-validate.mdx +12 -0
- package/docs/docs/cmd/entra/user/user-recyclebinitem-clear.mdx +21 -0
- package/docs/docs/cmd/entra/user/user-recyclebinitem-list.mdx +19 -0
- package/docs/docs/cmd/entra/user/user-recyclebinitem-remove.mdx +21 -0
- package/docs/docs/cmd/entra/user/user-recyclebinitem-restore.mdx +19 -0
- package/docs/docs/cmd/entra/user/user-registrationdetails-list.mdx +19 -0
- package/docs/docs/cmd/entra/user/user-session-revoke.mdx +21 -0
- package/docs/docs/cmd/entra/user/user-signin-list.mdx +19 -0
- package/docs/docs/cmd/exo/approleassignment/approleassignment-add.mdx +19 -0
- package/docs/docs/cmd/file/convert/convert-pdf.mdx +21 -0
- package/docs/docs/cmd/file/file-add.mdx +21 -0
- package/docs/docs/cmd/file/file-copy.mdx +21 -0
- package/docs/docs/cmd/file/file-list.mdx +19 -0
- package/docs/docs/cmd/file/file-move.mdx +21 -0
- package/docs/docs/cmd/outlook/calendar/calendar-add.mdx +165 -0
- package/docs/docs/cmd/outlook/calendar/calendar-get.mdx +165 -0
- package/docs/docs/cmd/outlook/calendar/calendar-remove.mdx +86 -0
- package/docs/docs/cmd/outlook/calendargroup/calendargroup-set.mdx +83 -0
- package/docs/docs/cmd/outlook/event/event-cancel.mdx +85 -0
- package/docs/docs/cmd/outlook/event/event-list.mdx +245 -0
- package/docs/docs/cmd/outlook/event/event-remove.mdx +85 -0
- package/docs/docs/cmd/spfx/project/project-upgrade.mdx +1 -1
- package/docs/docs/cmd/teams/chat/chat-message-list.mdx +23 -2
- package/npm-shrinkwrap.json +0 -7
- package/package.json +2 -1
|
@@ -11,9 +11,24 @@ export const options = z.strictObject({
|
|
|
11
11
|
error: e => `'${e.input}' is not a valid value for option chatId.`
|
|
12
12
|
})
|
|
13
13
|
.alias('i'),
|
|
14
|
+
createdEndDateTime: z.string()
|
|
15
|
+
.refine(time => validation.isValidISODateTime(time), {
|
|
16
|
+
error: e => `'${e.input}' is not a valid ISO date-time string for option createdEndDateTime.`
|
|
17
|
+
})
|
|
18
|
+
.optional(),
|
|
14
19
|
endDateTime: z.string()
|
|
15
20
|
.refine(time => validation.isValidISODateTime(time), {
|
|
16
21
|
error: e => `'${e.input}' is not a valid ISO date-time string for option endDateTime.`
|
|
22
|
+
})
|
|
23
|
+
.optional(),
|
|
24
|
+
modifiedStartDateTime: z.string()
|
|
25
|
+
.refine(time => validation.isValidISODateTime(time), {
|
|
26
|
+
error: e => `'${e.input}' is not a valid ISO date-time string for option modifiedStartDateTime.`
|
|
27
|
+
})
|
|
28
|
+
.optional(),
|
|
29
|
+
modifiedEndDateTime: z.string()
|
|
30
|
+
.refine(time => validation.isValidISODateTime(time), {
|
|
31
|
+
error: e => `'${e.input}' is not a valid ISO date-time string for option modifiedEndDateTime.`
|
|
17
32
|
})
|
|
18
33
|
.optional()
|
|
19
34
|
});
|
|
@@ -30,13 +45,37 @@ class TeamsChatMessageListCommand extends GraphCommand {
|
|
|
30
45
|
get schema() {
|
|
31
46
|
return options;
|
|
32
47
|
}
|
|
48
|
+
getRefinedSchema(schema) {
|
|
49
|
+
return schema
|
|
50
|
+
.refine(options => !(options.endDateTime && options.createdEndDateTime), {
|
|
51
|
+
error: 'Specify either endDateTime or createdEndDateTime, but not both.'
|
|
52
|
+
})
|
|
53
|
+
.refine(options => !(options.createdEndDateTime && (options.modifiedStartDateTime || options.modifiedEndDateTime)), {
|
|
54
|
+
error: 'You cannot combine createdEndDateTime with modifiedStartDateTime or modifiedEndDateTime. These filters operate on different properties.'
|
|
55
|
+
})
|
|
56
|
+
.refine(options => !(options.endDateTime && (options.modifiedStartDateTime || options.modifiedEndDateTime)), {
|
|
57
|
+
error: 'You cannot combine endDateTime with modifiedStartDateTime or modifiedEndDateTime. These filters operate on different properties.'
|
|
58
|
+
});
|
|
59
|
+
}
|
|
33
60
|
async commandAction(logger, args) {
|
|
61
|
+
if (args.options.endDateTime) {
|
|
62
|
+
await this.warn(logger, `Option 'endDateTime' is deprecated. Please use 'createdEndDateTime' instead.`);
|
|
63
|
+
args.options.createdEndDateTime = args.options.endDateTime;
|
|
64
|
+
}
|
|
34
65
|
try {
|
|
35
66
|
let apiUrl = `${this.resource}/v1.0/chats/${args.options.chatId}/messages`;
|
|
36
|
-
if (args.options.
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
67
|
+
if (args.options.createdEndDateTime) {
|
|
68
|
+
apiUrl += `?$filter=createdDateTime lt ${args.options.createdEndDateTime}&$orderby=createdDateTime desc`;
|
|
69
|
+
}
|
|
70
|
+
else if (args.options.modifiedStartDateTime || args.options.modifiedEndDateTime) {
|
|
71
|
+
const filters = [];
|
|
72
|
+
if (args.options.modifiedStartDateTime) {
|
|
73
|
+
filters.push(`lastModifiedDateTime gt ${args.options.modifiedStartDateTime}`);
|
|
74
|
+
}
|
|
75
|
+
if (args.options.modifiedEndDateTime) {
|
|
76
|
+
filters.push(`lastModifiedDateTime lt ${args.options.modifiedEndDateTime}`);
|
|
77
|
+
}
|
|
78
|
+
apiUrl += `?$filter=${filters.join(' and ')}&$orderby=lastModifiedDateTime desc`;
|
|
40
79
|
}
|
|
41
80
|
const items = await odata.getAllItems(apiUrl);
|
|
42
81
|
if (args.options.output && args.options.output !== 'json') {
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { odata } from './odata.js';
|
|
2
|
+
import { formatting } from './formatting.js';
|
|
3
|
+
import { cli } from '../cli/cli.js';
|
|
4
|
+
import request from '../request.js';
|
|
5
|
+
export const calendar = {
|
|
6
|
+
async getUserCalendarById(userId, calendarId, calendarGroupId, properties) {
|
|
7
|
+
let url = `https://graph.microsoft.com/v1.0/users('${userId}')/${calendarGroupId ? `calendarGroups/${calendarGroupId}/` : ''}calendars/${calendarId}`;
|
|
8
|
+
if (properties) {
|
|
9
|
+
url += `?$select=${properties}`;
|
|
10
|
+
}
|
|
11
|
+
const requestOptions = {
|
|
12
|
+
url: url,
|
|
13
|
+
headers: {
|
|
14
|
+
accept: 'application/json;odata.metadata=none'
|
|
15
|
+
},
|
|
16
|
+
responseType: 'json'
|
|
17
|
+
};
|
|
18
|
+
return await request.get(requestOptions);
|
|
19
|
+
},
|
|
20
|
+
async getUserCalendarByName(userId, name, calendarGroupId, properties) {
|
|
21
|
+
let url = `https://graph.microsoft.com/v1.0/users('${userId}')/${calendarGroupId ? `calendarGroups/${calendarGroupId}/` : ''}calendars?$filter=name eq '${formatting.encodeQueryParameter(name)}'`;
|
|
22
|
+
if (properties) {
|
|
23
|
+
url += `&$select=${properties}`;
|
|
24
|
+
}
|
|
25
|
+
const calendars = await odata.getAllItems(url);
|
|
26
|
+
if (calendars.length === 0) {
|
|
27
|
+
throw new Error(`The specified calendar '${name}' does not exist.`);
|
|
28
|
+
}
|
|
29
|
+
if (calendars.length > 1) {
|
|
30
|
+
const resultAsKeyValuePair = formatting.convertArrayToHashTable('id', calendars);
|
|
31
|
+
const selectedCalendar = await cli.handleMultipleResultsFound(`Multiple calendars with name '${name}' found.`, resultAsKeyValuePair);
|
|
32
|
+
return selectedCalendar;
|
|
33
|
+
}
|
|
34
|
+
return calendars[0];
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=calendar.js.map
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { odata } from './odata.js';
|
|
2
|
+
import { formatting } from './formatting.js';
|
|
3
|
+
import { cli } from '../cli/cli.js';
|
|
4
|
+
export const calendarGroup = {
|
|
5
|
+
async getUserCalendarGroupByName(userId, displayName, properties) {
|
|
6
|
+
let url = `https://graph.microsoft.com/v1.0/users('${userId}')/calendarGroups?$filter=name eq '${formatting.encodeQueryParameter(displayName)}'`;
|
|
7
|
+
if (properties) {
|
|
8
|
+
url += `&$select=${properties}`;
|
|
9
|
+
}
|
|
10
|
+
const calendarGroups = await odata.getAllItems(url);
|
|
11
|
+
if (calendarGroups.length === 0) {
|
|
12
|
+
throw new Error(`The specified calendar group '${displayName}' does not exist.`);
|
|
13
|
+
}
|
|
14
|
+
if (calendarGroups.length > 1) {
|
|
15
|
+
const resultAsKeyValuePair = formatting.convertArrayToHashTable('id', calendarGroups);
|
|
16
|
+
const selectedCalendarGroup = await cli.handleMultipleResultsFound(`Multiple calendar groups with name '${displayName}' found.`, resultAsKeyValuePair);
|
|
17
|
+
return selectedCalendarGroup;
|
|
18
|
+
}
|
|
19
|
+
return calendarGroups[0];
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=calendarGroup.js.map
|
package/dist/utils/entraApp.js
CHANGED
|
@@ -336,8 +336,15 @@ export const entraApp = {
|
|
|
336
336
|
},
|
|
337
337
|
responseType: 'json'
|
|
338
338
|
};
|
|
339
|
-
|
|
340
|
-
|
|
339
|
+
try {
|
|
340
|
+
return await request.get(requestOptions);
|
|
341
|
+
}
|
|
342
|
+
catch (error) {
|
|
343
|
+
if (error?.response?.status === 404) {
|
|
344
|
+
throw Error(`App with objectId '${objectId}' not found in Microsoft Entra ID.`);
|
|
345
|
+
}
|
|
346
|
+
throw error;
|
|
347
|
+
}
|
|
341
348
|
}
|
|
342
349
|
};
|
|
343
350
|
//# sourceMappingURL=entraApp.js.map
|
package/dist/utils/spfx.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Range, coerce, gt, validRange } from 'semver';
|
|
1
2
|
export const spfx = {
|
|
2
3
|
isReactProject(project) {
|
|
3
4
|
return (typeof project.yoRcJson !== 'undefined' &&
|
|
@@ -11,6 +12,64 @@ export const spfx = {
|
|
|
11
12
|
typeof project.yoRcJson['@microsoft/generator-sharepoint'] !== 'undefined' &&
|
|
12
13
|
project.yoRcJson["@microsoft/generator-sharepoint"].framework === 'knockout') ||
|
|
13
14
|
typeof project.packageJson?.dependencies?.['knockout'] !== 'undefined';
|
|
15
|
+
},
|
|
16
|
+
getHighestNodeVersion(versionRange) {
|
|
17
|
+
if (!versionRange) {
|
|
18
|
+
throw new Error('Node version range was not provided.');
|
|
19
|
+
}
|
|
20
|
+
const ranges = versionRange
|
|
21
|
+
.split('||')
|
|
22
|
+
.map(range => range.trim())
|
|
23
|
+
.filter(range => range.length > 0);
|
|
24
|
+
let highestMajor = null;
|
|
25
|
+
let exactVersion = null;
|
|
26
|
+
const simpleVersionPattern = /^\d+(\.\d+(\.\d+)?)?$/;
|
|
27
|
+
if (ranges.every(r => simpleVersionPattern.test(r))) {
|
|
28
|
+
const highest = ranges.reduce((best, curr) => gt(coerce(curr), coerce(best)) ? curr : best);
|
|
29
|
+
const parts = highest.split('.');
|
|
30
|
+
if (parts.length >= 3) {
|
|
31
|
+
return highest;
|
|
32
|
+
}
|
|
33
|
+
if (parts.length === 2) {
|
|
34
|
+
return `${highest}.x`;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
for (const rangeString of ranges) {
|
|
38
|
+
const normalized = validRange(rangeString);
|
|
39
|
+
if (!normalized) {
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
const rangeObj = new Range(normalized);
|
|
43
|
+
let maxMajor = 0;
|
|
44
|
+
// Analyze the range to find the maximum major version
|
|
45
|
+
for (const comparatorSet of rangeObj.set) {
|
|
46
|
+
for (const comparator of comparatorSet) {
|
|
47
|
+
if (comparator.operator === '<') {
|
|
48
|
+
// Exclusive upper bound: <17.0.0 means max major is 16
|
|
49
|
+
maxMajor = Math.max(maxMajor, comparator.semver.major - 1);
|
|
50
|
+
}
|
|
51
|
+
else if (comparator.operator === '<=') {
|
|
52
|
+
// Inclusive upper bound: <=17.0.0 means we can use exactly that version
|
|
53
|
+
maxMajor = Math.max(maxMajor, comparator.semver.major);
|
|
54
|
+
// Store the exact version for <= comparator
|
|
55
|
+
if (highestMajor === null || comparator.semver.major > highestMajor) {
|
|
56
|
+
exactVersion = comparator.semver.version;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
else if (comparator.operator === '>=' || comparator.operator === '>') {
|
|
60
|
+
// For lower bounds use the major version
|
|
61
|
+
maxMajor = Math.max(maxMajor, comparator.semver.major);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// Track the highest major version across all ranges
|
|
66
|
+
highestMajor = Math.max(highestMajor ?? 0, maxMajor);
|
|
67
|
+
}
|
|
68
|
+
if (highestMajor === null) {
|
|
69
|
+
throw new Error(`Unable to resolve the highest Node version for range '${versionRange}'.`);
|
|
70
|
+
}
|
|
71
|
+
// Return exact version if we have a <= comparator, otherwise use .x
|
|
72
|
+
return exactVersion || `${highestMajor}.x`;
|
|
14
73
|
}
|
|
15
74
|
};
|
|
16
75
|
//# sourceMappingURL=spfx.js.map
|
|
@@ -16,6 +16,25 @@ m365 entra license list [options]
|
|
|
16
16
|
|
|
17
17
|
<Global />
|
|
18
18
|
|
|
19
|
+
## Permissions
|
|
20
|
+
|
|
21
|
+
<Tabs>
|
|
22
|
+
<TabItem value="Delegated">
|
|
23
|
+
|
|
24
|
+
| Resource | Permissions |
|
|
25
|
+
|-----------------|----------------------------|
|
|
26
|
+
| Microsoft Graph | LicenseAssignment.Read.All |
|
|
27
|
+
|
|
28
|
+
</TabItem>
|
|
29
|
+
<TabItem value="Application">
|
|
30
|
+
|
|
31
|
+
| Resource | Permissions |
|
|
32
|
+
|-----------------|----------------------------|
|
|
33
|
+
| Microsoft Graph | LicenseAssignment.Read.All |
|
|
34
|
+
|
|
35
|
+
</TabItem>
|
|
36
|
+
</Tabs>
|
|
37
|
+
|
|
19
38
|
## Examples
|
|
20
39
|
|
|
21
40
|
List all licenses within the tenant.
|
|
@@ -24,6 +24,25 @@ m365 entra m365group conversation list [options]
|
|
|
24
24
|
|
|
25
25
|
<Global />
|
|
26
26
|
|
|
27
|
+
## Permissions
|
|
28
|
+
|
|
29
|
+
<Tabs>
|
|
30
|
+
<TabItem value="Delegated">
|
|
31
|
+
|
|
32
|
+
| Resource | Permissions |
|
|
33
|
+
|-----------------|-----------------------------|
|
|
34
|
+
| Microsoft Graph | Group-Conversation.Read.All |
|
|
35
|
+
|
|
36
|
+
</TabItem>
|
|
37
|
+
<TabItem value="Application">
|
|
38
|
+
|
|
39
|
+
| Resource | Permissions |
|
|
40
|
+
|-----------------|-----------------------------|
|
|
41
|
+
| Microsoft Graph | Group-Conversation.Read.All |
|
|
42
|
+
|
|
43
|
+
</TabItem>
|
|
44
|
+
</Tabs>
|
|
45
|
+
|
|
27
46
|
## Examples
|
|
28
47
|
|
|
29
48
|
Lists conversations for the Microsoft 365 group specified by id.
|
|
@@ -27,6 +27,25 @@ m365 entra m365group conversation post list [options]
|
|
|
27
27
|
|
|
28
28
|
<Global />
|
|
29
29
|
|
|
30
|
+
## Permissions
|
|
31
|
+
|
|
32
|
+
<Tabs>
|
|
33
|
+
<TabItem value="Delegated">
|
|
34
|
+
|
|
35
|
+
| Resource | Permissions |
|
|
36
|
+
|-----------------|-----------------------------|
|
|
37
|
+
| Microsoft Graph | Group-Conversation.Read.All |
|
|
38
|
+
|
|
39
|
+
</TabItem>
|
|
40
|
+
<TabItem value="Application">
|
|
41
|
+
|
|
42
|
+
| Resource | Permissions |
|
|
43
|
+
|-----------------|-----------------------------|
|
|
44
|
+
| Microsoft Graph | Group-Conversation.Read.All |
|
|
45
|
+
|
|
46
|
+
</TabItem>
|
|
47
|
+
</Tabs>
|
|
48
|
+
|
|
30
49
|
## Examples
|
|
31
50
|
|
|
32
51
|
Lists the posts of the specific conversation of Microsoft 365 group by groupId
|
|
@@ -30,6 +30,25 @@ m365 entra user groupmembership list [options]
|
|
|
30
30
|
|
|
31
31
|
<Global />
|
|
32
32
|
|
|
33
|
+
## Permissions
|
|
34
|
+
|
|
35
|
+
<Tabs>
|
|
36
|
+
<TabItem value="Delegated">
|
|
37
|
+
|
|
38
|
+
| Resource | Permissions |
|
|
39
|
+
|-----------------|------------------------------------------|
|
|
40
|
+
| Microsoft Graph | User.ReadBasic.All, GroupMember.Read.All |
|
|
41
|
+
|
|
42
|
+
</TabItem>
|
|
43
|
+
<TabItem value="Application">
|
|
44
|
+
|
|
45
|
+
| Resource | Permissions |
|
|
46
|
+
|-----------------|------------------------------------------|
|
|
47
|
+
| Microsoft Graph | User.ReadBasic.All, GroupMember.Read.All |
|
|
48
|
+
|
|
49
|
+
</TabItem>
|
|
50
|
+
</Tabs>
|
|
51
|
+
|
|
33
52
|
## Examples
|
|
34
53
|
|
|
35
54
|
Retrieves groups that the user is a member of
|
|
@@ -39,6 +39,25 @@ m365 entra user guest add [options]
|
|
|
39
39
|
|
|
40
40
|
<Global />
|
|
41
41
|
|
|
42
|
+
## Permissions
|
|
43
|
+
|
|
44
|
+
<Tabs>
|
|
45
|
+
<TabItem value="Delegated">
|
|
46
|
+
|
|
47
|
+
| Resource | Permissions |
|
|
48
|
+
|-----------------|-----------------|
|
|
49
|
+
| Microsoft Graph | User.Invite.All |
|
|
50
|
+
|
|
51
|
+
</TabItem>
|
|
52
|
+
<TabItem value="Application">
|
|
53
|
+
|
|
54
|
+
| Resource | Permissions |
|
|
55
|
+
|-----------------|-----------------|
|
|
56
|
+
| Microsoft Graph | User.Invite.All |
|
|
57
|
+
|
|
58
|
+
</TabItem>
|
|
59
|
+
</Tabs>
|
|
60
|
+
|
|
42
61
|
## Examples
|
|
43
62
|
|
|
44
63
|
Invite a user via email and set the display name.
|
|
@@ -35,6 +35,25 @@ The user must have a `usageLocation` value in order to assign a license to it.
|
|
|
35
35
|
|
|
36
36
|
:::
|
|
37
37
|
|
|
38
|
+
## Permissions
|
|
39
|
+
|
|
40
|
+
<Tabs>
|
|
41
|
+
<TabItem value="Delegated">
|
|
42
|
+
|
|
43
|
+
| Resource | Permissions |
|
|
44
|
+
|-----------------|---------------------------------|
|
|
45
|
+
| Microsoft Graph | LicenseAssignment.ReadWrite.All |
|
|
46
|
+
|
|
47
|
+
</TabItem>
|
|
48
|
+
<TabItem value="Application">
|
|
49
|
+
|
|
50
|
+
| Resource | Permissions |
|
|
51
|
+
|-----------------|---------------------------------|
|
|
52
|
+
| Microsoft Graph | LicenseAssignment.ReadWrite.All |
|
|
53
|
+
|
|
54
|
+
</TabItem>
|
|
55
|
+
</Tabs>
|
|
56
|
+
|
|
38
57
|
## Examples
|
|
39
58
|
|
|
40
59
|
Assign specific licenses to a specific user by UPN.
|
|
@@ -28,10 +28,27 @@ m365 entra user license list [options]
|
|
|
28
28
|
|
|
29
29
|
:::tip
|
|
30
30
|
|
|
31
|
-
If you don't specify any option, the command will list the license details of the current logged in user.
|
|
31
|
+
If you don't specify any option, the command will list the license details of the current logged in user.
|
|
32
32
|
|
|
33
33
|
:::
|
|
34
34
|
|
|
35
|
+
## Permissions
|
|
36
|
+
|
|
37
|
+
<Tabs>
|
|
38
|
+
<TabItem value="Delegated">
|
|
39
|
+
|
|
40
|
+
| Resource | Permissions |
|
|
41
|
+
|-----------------|----------------------------|
|
|
42
|
+
| Microsoft Graph | LicenseAssignment.Read.All |
|
|
43
|
+
|
|
44
|
+
</TabItem>
|
|
45
|
+
<TabItem value="Application">
|
|
46
|
+
|
|
47
|
+
This command does not support application permissions.
|
|
48
|
+
|
|
49
|
+
</TabItem>
|
|
50
|
+
</Tabs>
|
|
51
|
+
|
|
35
52
|
## Examples
|
|
36
53
|
|
|
37
54
|
List license details of the current logged in user.
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import Global from '../../_global.mdx';
|
|
2
|
+
import Tabs from '@theme/Tabs';
|
|
3
|
+
import TabItem from '@theme/TabItem';
|
|
2
4
|
|
|
3
5
|
# entra user license remove
|
|
4
6
|
|
|
@@ -28,6 +30,25 @@ m365 entra user license remove [options]
|
|
|
28
30
|
|
|
29
31
|
<Global />
|
|
30
32
|
|
|
33
|
+
## Permissions
|
|
34
|
+
|
|
35
|
+
<Tabs>
|
|
36
|
+
<TabItem value="Delegated">
|
|
37
|
+
|
|
38
|
+
| Resource | Permissions |
|
|
39
|
+
|-----------------|---------------------------------|
|
|
40
|
+
| Microsoft Graph | LicenseAssignment.ReadWrite.All |
|
|
41
|
+
|
|
42
|
+
</TabItem>
|
|
43
|
+
<TabItem value="Application">
|
|
44
|
+
|
|
45
|
+
| Resource | Permissions |
|
|
46
|
+
|-----------------|---------------------------------|
|
|
47
|
+
| Microsoft Graph | LicenseAssignment.ReadWrite.All |
|
|
48
|
+
|
|
49
|
+
</TabItem>
|
|
50
|
+
</Tabs>
|
|
51
|
+
|
|
31
52
|
## Examples
|
|
32
53
|
|
|
33
54
|
Remove specific licenses from a specific user by UPN.
|
|
@@ -29,6 +29,18 @@ This command is based on an API that is currently in preview and is subject to c
|
|
|
29
29
|
|
|
30
30
|
:::
|
|
31
31
|
|
|
32
|
+
## Permissions
|
|
33
|
+
|
|
34
|
+
<Tabs>
|
|
35
|
+
<TabItem value="Delegated">
|
|
36
|
+
|
|
37
|
+
| Resource | Permissions |
|
|
38
|
+
|-----------------|----------------|
|
|
39
|
+
| Microsoft Graph | User.ReadWrite |
|
|
40
|
+
|
|
41
|
+
</TabItem>
|
|
42
|
+
</Tabs>
|
|
43
|
+
|
|
32
44
|
## Examples
|
|
33
45
|
|
|
34
46
|
Validate password _cli365P@ssW0rd_ against the organization's password validation policy.
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import Global from '../../_global.mdx';
|
|
2
|
+
import Tabs from '@theme/Tabs';
|
|
3
|
+
import TabItem from '@theme/TabItem';
|
|
2
4
|
|
|
3
5
|
# entra user recyclebinitem clear
|
|
4
6
|
|
|
@@ -33,6 +35,25 @@ After running this command, it may take a minute before all deleted users are ef
|
|
|
33
35
|
|
|
34
36
|
:::
|
|
35
37
|
|
|
38
|
+
## Permissions
|
|
39
|
+
|
|
40
|
+
<Tabs>
|
|
41
|
+
<TabItem value="Delegated">
|
|
42
|
+
|
|
43
|
+
| Resource | Permissions |
|
|
44
|
+
|-----------------|------------------------|
|
|
45
|
+
| Microsoft Graph | User.DeleteRestore.All |
|
|
46
|
+
|
|
47
|
+
</TabItem>
|
|
48
|
+
<TabItem value="Application">
|
|
49
|
+
|
|
50
|
+
| Resource | Permissions |
|
|
51
|
+
|-----------------|------------------------|
|
|
52
|
+
| Microsoft Graph | User.DeleteRestore.All |
|
|
53
|
+
|
|
54
|
+
</TabItem>
|
|
55
|
+
</Tabs>
|
|
56
|
+
|
|
36
57
|
## Examples
|
|
37
58
|
|
|
38
59
|
Removes all users from the tenant recycle bin.
|
|
@@ -16,6 +16,25 @@ m365 entra user recyclebinitem list [options]
|
|
|
16
16
|
|
|
17
17
|
<Global />
|
|
18
18
|
|
|
19
|
+
## Permissions
|
|
20
|
+
|
|
21
|
+
<Tabs>
|
|
22
|
+
<TabItem value="Delegated">
|
|
23
|
+
|
|
24
|
+
| Resource | Permissions |
|
|
25
|
+
|-----------------|---------------|
|
|
26
|
+
| Microsoft Graph | User.Read.All |
|
|
27
|
+
|
|
28
|
+
</TabItem>
|
|
29
|
+
<TabItem value="Application">
|
|
30
|
+
|
|
31
|
+
| Resource | Permissions |
|
|
32
|
+
|-----------------|---------------|
|
|
33
|
+
| Microsoft Graph | User.Read.All |
|
|
34
|
+
|
|
35
|
+
</TabItem>
|
|
36
|
+
</Tabs>
|
|
37
|
+
|
|
19
38
|
## Examples
|
|
20
39
|
|
|
21
40
|
List all removed users.
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import Global from '../../_global.mdx';
|
|
2
|
+
import Tabs from '@theme/Tabs';
|
|
3
|
+
import TabItem from '@theme/TabItem';
|
|
2
4
|
|
|
3
5
|
# entra user recyclebinitem remove
|
|
4
6
|
|
|
@@ -36,6 +38,25 @@ After running this command, it may take a minute before the deleted user is effe
|
|
|
36
38
|
|
|
37
39
|
:::
|
|
38
40
|
|
|
41
|
+
## Permissions
|
|
42
|
+
|
|
43
|
+
<Tabs>
|
|
44
|
+
<TabItem value="Delegated">
|
|
45
|
+
|
|
46
|
+
| Resource | Permissions |
|
|
47
|
+
|-----------------|------------------------|
|
|
48
|
+
| Microsoft Graph | User.DeleteRestore.All |
|
|
49
|
+
|
|
50
|
+
</TabItem>
|
|
51
|
+
<TabItem value="Application">
|
|
52
|
+
|
|
53
|
+
| Resource | Permissions |
|
|
54
|
+
|-----------------|------------------------|
|
|
55
|
+
| Microsoft Graph | User.DeleteRestore.All |
|
|
56
|
+
|
|
57
|
+
</TabItem>
|
|
58
|
+
</Tabs>
|
|
59
|
+
|
|
39
60
|
## Examples
|
|
40
61
|
|
|
41
62
|
Removes a specific user from the recycle bin.
|
|
@@ -35,6 +35,25 @@ After running this command, it may take a minute before the user will reappear i
|
|
|
35
35
|
|
|
36
36
|
:::
|
|
37
37
|
|
|
38
|
+
## Permissions
|
|
39
|
+
|
|
40
|
+
<Tabs>
|
|
41
|
+
<TabItem value="Delegated">
|
|
42
|
+
|
|
43
|
+
| Resource | Permissions |
|
|
44
|
+
|-----------------|------------------------|
|
|
45
|
+
| Microsoft Graph | User.DeleteRestore.All |
|
|
46
|
+
|
|
47
|
+
</TabItem>
|
|
48
|
+
<TabItem value="Application">
|
|
49
|
+
|
|
50
|
+
| Resource | Permissions |
|
|
51
|
+
|-----------------|------------------------|
|
|
52
|
+
| Microsoft Graph | User.DeleteRestore.All |
|
|
53
|
+
|
|
54
|
+
</TabItem>
|
|
55
|
+
</Tabs>
|
|
56
|
+
|
|
38
57
|
## Examples
|
|
39
58
|
|
|
40
59
|
Restore user from the recycle bin.
|
|
@@ -77,6 +77,25 @@ When multiple values are specified for `--registeredMethods` option, the command
|
|
|
77
77
|
|
|
78
78
|
:::
|
|
79
79
|
|
|
80
|
+
## Permissions
|
|
81
|
+
|
|
82
|
+
<Tabs>
|
|
83
|
+
<TabItem value="Delegated">
|
|
84
|
+
|
|
85
|
+
| Resource | Permissions |
|
|
86
|
+
|-----------------|-------------------|
|
|
87
|
+
| Microsoft Graph | AuditLog.Read.All |
|
|
88
|
+
|
|
89
|
+
</TabItem>
|
|
90
|
+
<TabItem value="Application">
|
|
91
|
+
|
|
92
|
+
| Resource | Permissions |
|
|
93
|
+
|-----------------|-------------------|
|
|
94
|
+
| Microsoft Graph | AuditLog.Read.All |
|
|
95
|
+
|
|
96
|
+
</TabItem>
|
|
97
|
+
</Tabs>
|
|
98
|
+
|
|
80
99
|
## Examples
|
|
81
100
|
|
|
82
101
|
Retrieve registration details for all users.
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import Global from '../../_global.mdx';
|
|
2
|
+
import Tabs from '@theme/Tabs';
|
|
3
|
+
import TabItem from '@theme/TabItem';
|
|
2
4
|
|
|
3
5
|
# entra user session revoke
|
|
4
6
|
|
|
@@ -40,6 +42,25 @@ This API doesn't revoke sign-in sessions for external users, because external us
|
|
|
40
42
|
|
|
41
43
|
:::
|
|
42
44
|
|
|
45
|
+
## Permissions
|
|
46
|
+
|
|
47
|
+
<Tabs>
|
|
48
|
+
<TabItem value="Delegated">
|
|
49
|
+
|
|
50
|
+
| Resource | Permissions |
|
|
51
|
+
|-----------------|-------------------------|
|
|
52
|
+
| Microsoft Graph | User.RevokeSessions.All |
|
|
53
|
+
|
|
54
|
+
</TabItem>
|
|
55
|
+
<TabItem value="Application">
|
|
56
|
+
|
|
57
|
+
| Resource | Permissions |
|
|
58
|
+
|-----------------|-------------------------|
|
|
59
|
+
| Microsoft Graph | User.RevokeSessions.All |
|
|
60
|
+
|
|
61
|
+
</TabItem>
|
|
62
|
+
</Tabs>
|
|
63
|
+
|
|
43
64
|
## Examples
|
|
44
65
|
|
|
45
66
|
Revoke sign-in sessions of a user specified by id
|
|
@@ -30,6 +30,25 @@ m365 entra user signin list [options]
|
|
|
30
30
|
|
|
31
31
|
<Global />
|
|
32
32
|
|
|
33
|
+
## Permissions
|
|
34
|
+
|
|
35
|
+
<Tabs>
|
|
36
|
+
<TabItem value="Delegated">
|
|
37
|
+
|
|
38
|
+
| Resource | Permissions |
|
|
39
|
+
|-----------------|-------------------|
|
|
40
|
+
| Microsoft Graph | AuditLog.Read.All |
|
|
41
|
+
|
|
42
|
+
</TabItem>
|
|
43
|
+
<TabItem value="Application">
|
|
44
|
+
|
|
45
|
+
| Resource | Permissions |
|
|
46
|
+
|-----------------|-------------------|
|
|
47
|
+
| Microsoft Graph | AuditLog.Read.All |
|
|
48
|
+
|
|
49
|
+
</TabItem>
|
|
50
|
+
</Tabs>
|
|
51
|
+
|
|
33
52
|
## Examples
|
|
34
53
|
|
|
35
54
|
Get all user's sign-ins in your tenant.
|