@pnp/cli-microsoft365 5.2.0-beta.0f1c454 → 5.2.0-beta.a4da212
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/.eslintrc.js +1 -0
- package/.mocharc.json +1 -0
- package/dist/Auth.js +2 -1
- package/dist/Command.js +10 -1
- package/dist/cli/Cli.js +2 -18
- package/dist/m365/app/commands/app-get.js +3 -0
- package/dist/m365/cli/commands/cli-reconsent.js +20 -2
- package/dist/m365/cli/commands/config/config-set.js +1 -0
- package/dist/m365/spfx/commands/project/project-upgrade.js +4 -1
- package/dist/m365/spo/commands/file/file-checkout.js +2 -2
- package/dist/m365/spo/commands/site/site-remove.js +4 -3
- package/dist/m365/spo/commands/tenant/tenant-recyclebinitem-restore.js +10 -44
- package/dist/m365/spo/commands/tenant/tenant-settings-set.js +21 -0
- package/dist/m365/teams/commands/channel/channel-membership-list.js +150 -0
- package/dist/m365/teams/commands/chat/chat-get.js +143 -0
- package/dist/m365/teams/commands/chat/chat-message-send.js +5 -30
- package/dist/m365/teams/commands/chat/chatUtil.js +62 -0
- package/dist/m365/teams/commands.js +2 -0
- package/dist/settingsNames.js +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/md.js +81 -0
- package/docs/docs/cmd/spo/tenant/tenant-settings-set.md +52 -33
- package/docs/docs/cmd/teams/channel/channel-membership-list.md +48 -0
- package/docs/docs/cmd/teams/chat/chat-get.md +53 -0
- package/npm-shrinkwrap.json +22 -736
- package/package.json +2 -3
|
@@ -15,6 +15,7 @@ const request_1 = require("../../../../request");
|
|
|
15
15
|
const utils_1 = require("../../../../utils");
|
|
16
16
|
const GraphCommand_1 = require("../../../base/GraphCommand");
|
|
17
17
|
const commands_1 = require("../../commands");
|
|
18
|
+
const chatUtil_1 = require("./chatUtil");
|
|
18
19
|
class TeamsChatMessageSendCommand extends GraphCommand_1.default {
|
|
19
20
|
get name() {
|
|
20
21
|
return commands_1.default.CHAT_MESSAGE_SEND;
|
|
@@ -79,7 +80,7 @@ class TeamsChatMessageSendCommand extends GraphCommand_1.default {
|
|
|
79
80
|
return `${args.options.chatId} is not a valid Teams ChatId.`;
|
|
80
81
|
}
|
|
81
82
|
if (args.options.userEmails) {
|
|
82
|
-
const userEmails =
|
|
83
|
+
const userEmails = chatUtil_1.chatUtil.convertParticipantStringToArray(args.options.userEmails);
|
|
83
84
|
if (!userEmails || userEmails.length === 0 || userEmails.some(e => !utils_1.validation.isValidUserPrincipalName(e))) {
|
|
84
85
|
return `${args.options.userEmails} contains one or more invalid email addresses.`;
|
|
85
86
|
}
|
|
@@ -98,9 +99,9 @@ class TeamsChatMessageSendCommand extends GraphCommand_1.default {
|
|
|
98
99
|
}
|
|
99
100
|
ensureChatIdByUserEmails(userEmailsOption, logger) {
|
|
100
101
|
return __awaiter(this, void 0, void 0, function* () {
|
|
101
|
-
const userEmails =
|
|
102
|
+
const userEmails = chatUtil_1.chatUtil.convertParticipantStringToArray(userEmailsOption);
|
|
102
103
|
const currentUserEmail = utils_1.accessToken.getUserNameFromAccessToken(Auth_1.default.service.accessTokens[this.resource].accessToken).toLowerCase();
|
|
103
|
-
const existingChats = yield
|
|
104
|
+
const existingChats = yield chatUtil_1.chatUtil.findExistingChatsByParticipants([currentUserEmail, ...userEmails], logger);
|
|
104
105
|
if (!existingChats || existingChats.length === 0) {
|
|
105
106
|
const chat = yield this.createConversation([currentUserEmail, ...userEmails]);
|
|
106
107
|
return chat.id;
|
|
@@ -116,7 +117,7 @@ class TeamsChatMessageSendCommand extends GraphCommand_1.default {
|
|
|
116
117
|
}
|
|
117
118
|
getChatIdByName(chatName, logger) {
|
|
118
119
|
return __awaiter(this, void 0, void 0, function* () {
|
|
119
|
-
const existingChats = yield
|
|
120
|
+
const existingChats = yield chatUtil_1.chatUtil.findExistingGroupChatsByName(chatName, logger);
|
|
120
121
|
if (!existingChats || existingChats.length === 0) {
|
|
121
122
|
throw new Error('No chat conversation was found with this name.');
|
|
122
123
|
}
|
|
@@ -186,32 +187,6 @@ class TeamsChatMessageSendCommand extends GraphCommand_1.default {
|
|
|
186
187
|
yield request_1.default.post(requestOptions);
|
|
187
188
|
});
|
|
188
189
|
}
|
|
189
|
-
findExistingGroupChatsByMembers(expectedMemberEmails, logger) {
|
|
190
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
191
|
-
const endpoint = `${this.resource}/v1.0/chats?$filter=chatType eq 'group'&$expand=members&$select=id,topic,createdDateTime,members`;
|
|
192
|
-
const foundChats = [];
|
|
193
|
-
const chats = yield utils_1.odata.getAllItems(endpoint, logger);
|
|
194
|
-
for (const chat of chats) {
|
|
195
|
-
const chatMembers = chat.members;
|
|
196
|
-
if (chatMembers.length === expectedMemberEmails.length) {
|
|
197
|
-
const chatMemberEmails = chatMembers.map(member => { var _a; return (_a = member.email) === null || _a === void 0 ? void 0 : _a.toLowerCase(); });
|
|
198
|
-
if (expectedMemberEmails.every(email => chatMemberEmails.some(memberEmail => memberEmail === email))) {
|
|
199
|
-
foundChats.push(chat);
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
return foundChats;
|
|
204
|
-
});
|
|
205
|
-
}
|
|
206
|
-
findExistingGroupChatsByName(name, logger) {
|
|
207
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
208
|
-
const endpoint = `${this.resource}/v1.0/chats?$filter=topic eq '${encodeURIComponent(name)}'&$expand=members&$select=id,topic,createdDateTime,chatType`;
|
|
209
|
-
return utils_1.odata.getAllItems(endpoint, logger);
|
|
210
|
-
});
|
|
211
|
-
}
|
|
212
|
-
convertCommaSeparatedListToArray(userEmailsString) {
|
|
213
|
-
return userEmailsString.toLowerCase().replace(/\s/g, '').split(',').filter(e => e && e !== '');
|
|
214
|
-
}
|
|
215
190
|
}
|
|
216
191
|
module.exports = new TeamsChatMessageSendCommand();
|
|
217
192
|
//# sourceMappingURL=chat-message-send.js.map
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.chatUtil = void 0;
|
|
13
|
+
const odata_1 = require("../../../../utils/odata");
|
|
14
|
+
exports.chatUtil = {
|
|
15
|
+
/**
|
|
16
|
+
* Finds existing Microsoft Teams chats by participants, using the Microsoft Graph
|
|
17
|
+
* @param expectedMemberEmails a string array of participant emailaddresses
|
|
18
|
+
* @param logger a logger to pipe into the graph request odata helper.
|
|
19
|
+
*/
|
|
20
|
+
findExistingChatsByParticipants(expectedMemberEmails, logger) {
|
|
21
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
const chatType = expectedMemberEmails.length === 2 ? 'oneOnOne' : 'group';
|
|
23
|
+
const endpoint = `https://graph.microsoft.com/v1.0/chats?$filter=chatType eq '${chatType}'&$expand=members&$select=id,topic,createdDateTime,members`;
|
|
24
|
+
const foundChats = [];
|
|
25
|
+
const chats = yield odata_1.odata.getAllItems(endpoint, logger);
|
|
26
|
+
for (const chat of chats) {
|
|
27
|
+
const chatMembers = chat.members;
|
|
28
|
+
if (chatMembers.length === expectedMemberEmails.length) {
|
|
29
|
+
const chatMemberEmails = chatMembers.map(member => { var _a; return (_a = member.email) === null || _a === void 0 ? void 0 : _a.toLowerCase(); });
|
|
30
|
+
if (expectedMemberEmails.every(email => chatMemberEmails.some(memberEmail => memberEmail === email))) {
|
|
31
|
+
foundChats.push(chat);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return foundChats;
|
|
36
|
+
});
|
|
37
|
+
},
|
|
38
|
+
/**
|
|
39
|
+
* Finds existing Microsoft Teams chats by name, using the Microsoft Graph
|
|
40
|
+
* @param name the name of the chat conversation to find
|
|
41
|
+
* @param logger a logger to pipe into the graph request odata helper.
|
|
42
|
+
*/
|
|
43
|
+
findExistingGroupChatsByName(name, logger) {
|
|
44
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
const endpoint = `https://graph.microsoft.com/v1.0/chats?$filter=topic eq '${encodeURIComponent(name).replace("'", "''")}'&$expand=members&$select=id,topic,createdDateTime,chatType`;
|
|
46
|
+
return odata_1.odata.getAllItems(endpoint, logger);
|
|
47
|
+
});
|
|
48
|
+
},
|
|
49
|
+
/**
|
|
50
|
+
* Converts a comma or space separated string into an array.
|
|
51
|
+
* @param value the string to convert
|
|
52
|
+
*/
|
|
53
|
+
convertParticipantStringToArray(value) {
|
|
54
|
+
if (value.indexOf(',') === -1) {
|
|
55
|
+
return value.trim().toLowerCase().split(' ').filter(e => e && e !== '');
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
return value.trim().toLowerCase().split(',').filter(e => e && e !== '');
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=chatUtil.js.map
|
|
@@ -11,8 +11,10 @@ exports.default = {
|
|
|
11
11
|
CHANNEL_ADD: `${prefix} channel add`,
|
|
12
12
|
CHANNEL_GET: `${prefix} channel get`,
|
|
13
13
|
CHANNEL_LIST: `${prefix} channel list`,
|
|
14
|
+
CHANNEL_MEMBERSHIP_LIST: `${prefix} channel membership list`,
|
|
14
15
|
CHANNEL_REMOVE: `${prefix} channel remove`,
|
|
15
16
|
CHANNEL_SET: `${prefix} channel set`,
|
|
17
|
+
CHAT_GET: `${prefix} chat get`,
|
|
16
18
|
CHAT_LIST: `${prefix} chat list`,
|
|
17
19
|
CHAT_MEMBER_LIST: `${prefix} chat member list`,
|
|
18
20
|
CHAT_MESSAGE_LIST: `${prefix} chat message list`,
|
package/dist/settingsNames.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.settingsNames = void 0;
|
|
4
4
|
const settingsNames = {
|
|
5
5
|
autoOpenBrowserOnLogin: 'autoOpenBrowserOnLogin',
|
|
6
|
+
autoOpenLinksInBrowser: 'autoOpenLinksInBrowser',
|
|
6
7
|
copyDeviceCodeToClipboard: 'copyDeviceCodeToClipboard',
|
|
7
8
|
csvEscape: 'csvEscape',
|
|
8
9
|
csvHeader: 'csvHeader',
|
package/dist/utils/index.js
CHANGED
|
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./accessToken"), exports);
|
|
18
18
|
__exportStar(require("./formatting"), exports);
|
|
19
19
|
__exportStar(require("./fsUtil"), exports);
|
|
20
|
+
__exportStar(require("./md"), exports);
|
|
20
21
|
__exportStar(require("./odata"), exports);
|
|
21
22
|
__exportStar(require("./packageManager"), exports);
|
|
22
23
|
__exportStar(require("./sinonUtil"), exports);
|
package/dist/utils/md.js
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.md = void 0;
|
|
4
|
+
const fs = require("fs");
|
|
5
|
+
const os_1 = require("os");
|
|
6
|
+
const path = require("path");
|
|
7
|
+
function convertTitle(md) {
|
|
8
|
+
return md.replace(/^#\s+(.*)/gm, (match, title) => {
|
|
9
|
+
return title.toLocaleUpperCase() + os_1.EOL + Array(title.length + 1).join('=');
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
function convertHeadings(md) {
|
|
13
|
+
return md.replace(/^(#+)\s+(.*)/gm, (match, level, content) => {
|
|
14
|
+
return `${os_1.EOL}${content.toLocaleUpperCase()}`;
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
function convertAdmonitions(md) {
|
|
18
|
+
const regex = new RegExp('^!!!\\s(.*)' + os_1.EOL + '\\s+', 'gm');
|
|
19
|
+
return md.replace(regex, (match, content) => {
|
|
20
|
+
return content.toLocaleUpperCase() + os_1.EOL + os_1.EOL;
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
function includeContent(md, rootFolder) {
|
|
24
|
+
return md.replace(/^--8<-- "([^"]+)"/gm, (match, filePath) => {
|
|
25
|
+
return fs.readFileSync(path.join(rootFolder, filePath), 'utf8');
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
function convertDd(md) {
|
|
29
|
+
return md.replace(/^:\s(.*)/gm, (match, content) => {
|
|
30
|
+
return ` ${content}`;
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
function convertHyperlinks(md) {
|
|
34
|
+
return md.replace(/\[([^\]]+)\]\(([^\)]+)\)/gm, (match, label, url) => {
|
|
35
|
+
// if the link is the same as the content, return just the link
|
|
36
|
+
if (label === url) {
|
|
37
|
+
return url;
|
|
38
|
+
}
|
|
39
|
+
// if the link is relative, remove it because there's no way to open it
|
|
40
|
+
// from the terminal anyway. In the future, we could convert it to the
|
|
41
|
+
// actual link of the docs.
|
|
42
|
+
if (!url.startsWith('http:') && !url.startsWith('https:')) {
|
|
43
|
+
return label;
|
|
44
|
+
}
|
|
45
|
+
return `${label} (${url})`;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
function convertCodeFences(md) {
|
|
49
|
+
const regex = new RegExp('^```.*?' + os_1.EOL + '(.*?)```' + os_1.EOL, 'gms');
|
|
50
|
+
return md.replace(regex, (match, code) => {
|
|
51
|
+
return ` ${code}${os_1.EOL}`;
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
function removeInlineMarkup(md) {
|
|
55
|
+
// from https://stackoverflow.com/a/70064453
|
|
56
|
+
return md.replace(/(?<marks>[`]|\*{1,3}|_{1,3}|~{2})(?<inmarks>.*?)\1/g, '$<inmarks>$<link_text>');
|
|
57
|
+
}
|
|
58
|
+
function removeTooManyEmptyLines(md) {
|
|
59
|
+
const regex = new RegExp('(' + os_1.EOL + '){4,}', 'g');
|
|
60
|
+
return md.replace(regex, Array(4).join(os_1.EOL));
|
|
61
|
+
}
|
|
62
|
+
const convertFunctions = [
|
|
63
|
+
convertTitle,
|
|
64
|
+
convertHeadings,
|
|
65
|
+
convertAdmonitions,
|
|
66
|
+
convertDd,
|
|
67
|
+
convertHyperlinks,
|
|
68
|
+
convertCodeFences,
|
|
69
|
+
removeInlineMarkup,
|
|
70
|
+
removeTooManyEmptyLines
|
|
71
|
+
];
|
|
72
|
+
exports.md = {
|
|
73
|
+
md2plain(md, rootFolderDocs) {
|
|
74
|
+
md = includeContent(md, rootFolderDocs);
|
|
75
|
+
convertFunctions.forEach(convert => {
|
|
76
|
+
md = convert(md);
|
|
77
|
+
});
|
|
78
|
+
return md;
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
//# sourceMappingURL=md.js.map
|
|
@@ -13,34 +13,34 @@ m365 spo tenant settings set [options]
|
|
|
13
13
|
--8<-- "docs/cmd/_global.md"
|
|
14
14
|
|
|
15
15
|
`--MinCompatibilityLevel [MinCompatibilityLevel]`
|
|
16
|
-
: Specifies the lower bound on the compatibility level for new sites
|
|
16
|
+
: Specifies the lower bound on the compatibility level for new sites
|
|
17
17
|
|
|
18
18
|
`--MaxCompatibilityLevel [MaxCompatibilityLevel]`
|
|
19
|
-
: Specifies the upper bound on the compatibility level for new sites
|
|
19
|
+
: Specifies the upper bound on the compatibility level for new sites
|
|
20
20
|
|
|
21
21
|
`--ExternalServicesEnabled [ExternalServicesEnabled]`
|
|
22
22
|
: Enables external services for a tenant. External services are defined as services that are not in the Microsoft 365 datacenters. Allowed values `true,false`
|
|
23
23
|
|
|
24
24
|
`--NoAccessRedirectUrl [NoAccessRedirectUrl]`
|
|
25
|
-
: Specifies the URL of the redirected site for those site collections which have the locked state "NoAccess"
|
|
25
|
+
: Specifies the URL of the redirected site for those site collections which have the locked state "NoAccess"
|
|
26
26
|
|
|
27
27
|
`--SharingCapability [SharingCapability]`
|
|
28
|
-
: Determines what level of sharing is available for the site. The valid values are: ExternalUserAndGuestSharing (default) - External user sharing (share by email) and guest link sharing are both enabled. Disabled - External user sharing (share by email) and guest link sharing are both disabled. ExternalUserSharingOnly - External user sharing (share by email) is enabled, but guest link sharing is disabled. Allowed values Disabled,ExternalUserSharingOnly,ExternalUserAndGuestSharing,ExistingExternalUserSharingOnly
|
|
28
|
+
: Determines what level of sharing is available for the site. The valid values are: ExternalUserAndGuestSharing (default) - External user sharing (share by email) and guest link sharing are both enabled. Disabled - External user sharing (share by email) and guest link sharing are both disabled. ExternalUserSharingOnly - External user sharing (share by email) is enabled, but guest link sharing is disabled. Allowed values `Disabled,ExternalUserSharingOnly,ExternalUserAndGuestSharing,ExistingExternalUserSharingOnly`
|
|
29
29
|
|
|
30
30
|
`--DisplayStartASiteOption [DisplayStartASiteOption]`
|
|
31
31
|
: Determines whether tenant users see the Start a Site menu option. Allowed values `true,false`
|
|
32
32
|
|
|
33
33
|
`--StartASiteFormUrl [StartASiteFormUrl]`
|
|
34
|
-
: Specifies URL of the form to load in the Start a Site dialog. The valid values are: "" (default) - Blank by default, this will also remove or clear any value that has been set. Full URL - Example:"https://contoso.sharepoint.com/path/to/form"
|
|
34
|
+
: Specifies URL of the form to load in the Start a Site dialog. The valid values are: "" (default) - Blank by default, this will also remove or clear any value that has been set. Full URL - Example:"https://contoso.sharepoint.com/path/to/form"
|
|
35
35
|
|
|
36
36
|
`--ShowEveryoneClaim [ShowEveryoneClaim]`
|
|
37
37
|
: Enables the administrator to hide the Everyone claim in the People Picker. When users share an item with Everyone, it is accessible to all authenticated users in the tenant\'s Azure Active Directory, including any active external users who have previously accepted invitations. Note, that some SharePoint system resources such as templates and pages are required to be shared to Everyone and this type of sharing does not expose any user data or metadata. Allowed values `true,false`
|
|
38
38
|
|
|
39
39
|
`--ShowAllUsersClaim [ShowAllUsersClaim]`
|
|
40
|
-
: Enables the administrator to hide the All Users claim groups in People Picker. When users share an item with "All Users (x)", it is accessible to all organization members in the tenant\'s Azure Active Directory who have authenticated with via this method. When users share an item with "All Users (x)" it is accessible to all
|
|
40
|
+
: Enables the administrator to hide the All Users claim groups in People Picker. When users share an item with "All Users (x)", it is accessible to all organization members in the tenant\'s Azure Active Directory who have authenticated with via this method. When users share an item with "All Users (x)" it is accessible to all organization members in the tenant that used NTLM to authentication with SharePoint. Allowed values `true,false`
|
|
41
41
|
|
|
42
42
|
`--ShowEveryoneExceptExternalUsersClaim [ShowEveryoneExceptExternalUsersClaim]`
|
|
43
|
-
: Enables the administrator to hide the "Everyone except external users" claim in the People Picker. When users share an item with "Everyone except external users", it is accessible to all organization members in the tenant
|
|
43
|
+
: Enables the administrator to hide the "Everyone except external users" claim in the People Picker. When users share an item with "Everyone except external users", it is accessible to all organization members in the tenant's Azure Active Directory, but not to any users who have previously accepted invitations. Allowed values `true,false`
|
|
44
44
|
|
|
45
45
|
`--SearchResolveExactEmailOrUPN [SearchResolveExactEmailOrUPN]`
|
|
46
46
|
: Removes the search capability from People Picker. Note, recently resolved names will still appear in the list until browser cache is cleared or expired. SharePoint Administrators will still be able to use starts with or partial name matching when enabled. Allowed values `true,false`
|
|
@@ -49,7 +49,7 @@ m365 spo tenant settings set [options]
|
|
|
49
49
|
: When set to true this will disable the ability to use Modern Authentication that leverages ADAL across the tenant. Allowed values `true,false`
|
|
50
50
|
|
|
51
51
|
`--LegacyAuthProtocolsEnabled [LegacyAuthProtocolsEnabled]`
|
|
52
|
-
: By default this value is set to true. Setting this parameter prevents Office clients using non-modern authentication protocols from accessing SharePoint Online resources. A value of true - Enables Office clients using non-modern authentication protocols(such as, Forms-Based Authentication (FBA) or Identity Client Runtime Library (IDCRL)) to access SharePoint resources. Allowed values `true,false`
|
|
52
|
+
: By default this value is set to true. Setting this parameter prevents Office clients using non-modern authentication protocols from accessing SharePoint Online resources. A value of true - Enables Office clients using non-modern authentication protocols (such as, Forms-Based Authentication (FBA) or Identity Client Runtime Library (IDCRL)) to access SharePoint resources. Allowed values `true,false`
|
|
53
53
|
|
|
54
54
|
`--RequireAcceptingAccountMatchInvitedAccount [RequireAcceptingAccountMatchInvitedAccount]`
|
|
55
55
|
: Ensures that an external user can only accept an external sharing invitation with an account matching the invited email address. Administrators who desire increased control over external collaborators should consider enabling this feature. Allowed values `true,false`
|
|
@@ -58,7 +58,7 @@ m365 spo tenant settings set [options]
|
|
|
58
58
|
: Creates a Shared with Everyone folder in every user\'s new OneDrive for Business document library. The valid values are: True (default) - The Shared with Everyone folder is created. False - No folder is created when the site and OneDrive for Business document library is created. Allowed values `true,false`
|
|
59
59
|
|
|
60
60
|
`--SignInAccelerationDomain [SignInAccelerationDomain]`
|
|
61
|
-
: Specifies the home realm discovery value to be sent to Azure Active Directory (AAD) during the user sign-in process. When the organization uses a third-party identity provider, this prevents the user from seeing the Azure Active Directory Home Realm Discovery web page and ensures the user only sees their company
|
|
61
|
+
: Specifies the home realm discovery value to be sent to Azure Active Directory (AAD) during the user sign-in process. When the organization uses a third-party identity provider, this prevents the user from seeing the Azure Active Directory Home Realm Discovery web page and ensures the user only sees their company's Identity Provider's portal. This value can also be used with Azure Active Directory Premium to customize the Azure Active Directory login page. Acceleration will not occur on site collections that are shared externally. This value should be configured with the login domain that is used by your company (that is, example@contoso.com). If your company has multiple third-party identity providers, configuring the sign-in acceleration value will break sign-in for your organization. The valid values are: "" (default) - Blank by default, this will also remove or clear any value that has been set. Login Domain - For example: "contoso.com". No value assigned by default
|
|
62
62
|
|
|
63
63
|
`--EnableGuestSignInAcceleration [EnableGuestSignInAcceleration]`
|
|
64
64
|
: Accelerates guest-enabled site collections as well as member-only site collections when the SignInAccelerationDomain parameter is set. Allowed values `true,false`
|
|
@@ -70,7 +70,7 @@ m365 spo tenant settings set [options]
|
|
|
70
70
|
: When the feature is enabled, all external sharing invitations that are sent will blind copy the e-mail messages listed in the BccExternalSharingsInvitationList. Allowed values `true,false`
|
|
71
71
|
|
|
72
72
|
`--BccExternalSharingInvitationsList [BccExternalSharingInvitationsList]`
|
|
73
|
-
: Specifies a list of e-mail addresses to be BCC
|
|
73
|
+
: Specifies a list of e-mail addresses to be BCC'd when the BCC for External Sharing feature is enabled. Multiple addresses can be specified by creating a comma separated list with no spaces
|
|
74
74
|
|
|
75
75
|
`--UserVoiceForFeedbackEnabled [UserVoiceForFeedbackEnabled]`
|
|
76
76
|
: Enables or disables the User Voice Feedback button. Allowed values `true,false`
|
|
@@ -79,22 +79,22 @@ m365 spo tenant settings set [options]
|
|
|
79
79
|
: Enables or disables the publish CDN. Allowed values `true,false`
|
|
80
80
|
|
|
81
81
|
`--PublicCdnAllowedFileTypes [PublicCdnAllowedFileTypes]`
|
|
82
|
-
: Sets public CDN allowed file types
|
|
82
|
+
: Sets public CDN allowed file types
|
|
83
83
|
|
|
84
84
|
`--RequireAnonymousLinksExpireInDays [RequireAnonymousLinksExpireInDays]`
|
|
85
|
-
: Specifies all anonymous links that have been created (or will be created) will expire after the set number of days. To remove the expiration requirement, set the value to zero (0)
|
|
85
|
+
: Specifies all anonymous links that have been created (or will be created) will expire after the set number of days. To remove the expiration requirement, set the value to zero (0)
|
|
86
86
|
|
|
87
87
|
`--SharingAllowedDomainList [SharingAllowedDomainList]`
|
|
88
|
-
: Specifies a list of email domains that is allowed for sharing with the external collaborators. Use the space character as the delimiter for entering multiple values. For example, "contoso.com fabrikam.com"
|
|
88
|
+
: Specifies a list of email domains that is allowed for sharing with the external collaborators. Use the space character as the delimiter for entering multiple values. For example, "contoso.com fabrikam.com"
|
|
89
89
|
|
|
90
90
|
`--SharingBlockedDomainList [SharingBlockedDomainList]`
|
|
91
|
-
: Specifies a list of email domains that is blocked or prohibited for sharing with the external collaborators. Use space character as the delimiter for entering multiple values. For example, "contoso.com fabrikam.com"
|
|
91
|
+
: Specifies a list of email domains that is blocked or prohibited for sharing with the external collaborators. Use space character as the delimiter for entering multiple values. For example, "contoso.com fabrikam.com"
|
|
92
92
|
|
|
93
93
|
`--SharingDomainRestrictionMode [SharingDomainRestrictionMode]`
|
|
94
|
-
: Specifies the external sharing mode for domains. Allowed values None,AllowList,BlockList
|
|
94
|
+
: Specifies the external sharing mode for domains. Allowed values `None,AllowList,BlockList`
|
|
95
95
|
|
|
96
96
|
`--OneDriveStorageQuota [OneDriveStorageQuota]`
|
|
97
|
-
: Sets a default OneDrive for Business storage quota for the tenant. It will be used for new OneDrive for Business sites created. A typical use will be to reduce the amount of storage associated with OneDrive for Business to a level below what the License entitles the users. For example, it could be used to set the quota to 10 gigabytes (GB) by default
|
|
97
|
+
: Sets a default OneDrive for Business storage quota for the tenant. It will be used for new OneDrive for Business sites created. A typical use will be to reduce the amount of storage associated with OneDrive for Business to a level below what the License entitles the users. For example, it could be used to set the quota to 10 gigabytes (GB) by default
|
|
98
98
|
|
|
99
99
|
`--OneDriveForGuestsEnabled [OneDriveForGuestsEnabled]`
|
|
100
100
|
: Lets OneDrive for Business creation for administrator managed guest users. Administrator managed Guest users use credentials in the resource tenant to access the resources. Allowed values `true,false`
|
|
@@ -103,7 +103,7 @@ m365 spo tenant settings set [options]
|
|
|
103
103
|
: Allows access from network locations that are defined by an administrator. The values are true and false. The default value is false which means the setting is disabled. Before the iPAddressEnforcement parameter is set, make sure you add a valid IPv4 or IPv6 address to the iPAddressAllowList parameter. Allowed values `true,false`
|
|
104
104
|
|
|
105
105
|
`--IPAddressAllowList [IPAddressAllowList]`
|
|
106
|
-
: Configures multiple IP addresses or IP address ranges (IPv4 or IPv6). Use commas to separate multiple IP addresses or IP address ranges. Verify there are no overlapping IP addresses and ensure IP ranges use Classless Inter-Domain Routing (CIDR) notation. For example, 172.16.0.0, 192.168.1.0/27
|
|
106
|
+
: Configures multiple IP addresses or IP address ranges (IPv4 or IPv6). Use commas to separate multiple IP addresses or IP address ranges. Verify there are no overlapping IP addresses and ensure IP ranges use Classless Inter-Domain Routing (CIDR) notation. For example, `172.16.0.0, 192.168.1.0/27`. No value is assigned by default
|
|
107
107
|
|
|
108
108
|
`--IPAddressWACTokenLifetime [IPAddressWACTokenLifetime]`
|
|
109
109
|
: Sets IP Address WAC token lifetime'
|
|
@@ -112,13 +112,13 @@ m365 spo tenant settings set [options]
|
|
|
112
112
|
: Sets use find people in PeoplePicker to true or false. Note: When set to true, users aren\'t able to share with security groups or SharePoint groups. Allowed values `true,false`
|
|
113
113
|
|
|
114
114
|
`--DefaultSharingLinkType [DefaultSharingLinkType]`
|
|
115
|
-
: Lets administrators choose what type of link appears is selected in the “Get a link” sharing dialog box in OneDrive for Business and SharePoint Online. Allowed values None,Direct,Internal,AnonymousAccess
|
|
115
|
+
: Lets administrators choose what type of link appears is selected in the “Get a link” sharing dialog box in OneDrive for Business and SharePoint Online. Allowed values `None,Direct,Internal,AnonymousAccess`
|
|
116
116
|
|
|
117
117
|
`--ODBMembersCanShare [ODBMembersCanShare]`
|
|
118
|
-
: Lets administrators set policy on re-sharing behavior in OneDrive for Business. Allowed values Unspecified,On,Off
|
|
118
|
+
: Lets administrators set policy on re-sharing behavior in OneDrive for Business. Allowed values `Unspecified,On,Off`
|
|
119
119
|
|
|
120
120
|
`--ODBAccessRequests [ODBAccessRequests]`
|
|
121
|
-
: Lets administrators set policy on access requests and requests to share in OneDrive for Business. Allowed values Unspecified,On,Off
|
|
121
|
+
: Lets administrators set policy on access requests and requests to share in OneDrive for Business. Allowed values `Unspecified,On,Off`
|
|
122
122
|
|
|
123
123
|
`--PreventExternalUsersFromResharing [PreventExternalUsersFromResharing]`
|
|
124
124
|
: Prevents external users from resharing. Allowed values `true,false`
|
|
@@ -127,16 +127,16 @@ m365 spo tenant settings set [options]
|
|
|
127
127
|
: Shows people picker suggestions for guest users. Allowed values `true,false`
|
|
128
128
|
|
|
129
129
|
`--FileAnonymousLinkType [FileAnonymousLinkType]`
|
|
130
|
-
: Sets the file anonymous link type to None
|
|
130
|
+
: Sets the file anonymous link type to `None`, `View` or `Edit`
|
|
131
131
|
|
|
132
132
|
`--FolderAnonymousLinkType [FolderAnonymousLinkType]`
|
|
133
|
-
: Sets the folder anonymous link type to None
|
|
133
|
+
: Sets the folder anonymous link type to `None`, `View` or `Edit`
|
|
134
134
|
|
|
135
135
|
`--NotifyOwnersWhenItemsReshared [NotifyOwnersWhenItemsReshared]`
|
|
136
|
-
: When this parameter is set to true and another user re-shares a document from a user
|
|
136
|
+
: When this parameter is set to true and another user re-shares a document from a user's OneDrive for Business, the OneDrive for Business owner is notified by email. For additional information about how to configure notifications for external sharing, see Configure notifications for external sharing for OneDrive for Business. Allowed values `true,false`
|
|
137
137
|
|
|
138
138
|
`--NotifyOwnersWhenInvitationsAccepted [NotifyOwnersWhenInvitationsAccepted]`
|
|
139
|
-
: When this parameter is set to true and when an external user accepts an invitation to a resource in a user
|
|
139
|
+
: When this parameter is set to true and when an external user accepts an invitation to a resource in a user's OneDrive for Business, the OneDrive for Business owner is notified by email. For additional information about how to configure notifications for external sharing, see Configure notifications for external sharing for OneDrive for Business. Allowed values `true,false`
|
|
140
140
|
|
|
141
141
|
`--NotificationsInOneDriveForBusinessEnabled [NotificationsInOneDriveForBusinessEnabled]`
|
|
142
142
|
: Enables or disables notifications in OneDrive for business. Allowed values `true,false`
|
|
@@ -154,16 +154,16 @@ m365 spo tenant settings set [options]
|
|
|
154
154
|
: Enables or disables social bar on site pages. Allowed values `true,false`
|
|
155
155
|
|
|
156
156
|
`--OrphanedPersonalSitesRetentionPeriod [OrphanedPersonalSitesRetentionPeriod]`
|
|
157
|
-
: Specifies the number of days after a user
|
|
157
|
+
: Specifies the number of days after a user's Active Directory account is deleted that their OneDrive for Business content will be deleted. The value range is in days, between 30 and 3650. The default value is 30
|
|
158
158
|
|
|
159
159
|
`--DisallowInfectedFileDownload [DisallowInfectedFileDownload]`
|
|
160
160
|
: Prevents the Download button from being displayed on the Virus Found warning page. Allowed values `true,false`
|
|
161
161
|
|
|
162
162
|
`--DefaultLinkPermission [DefaultLinkPermission]`
|
|
163
|
-
: Choose the dafault permission that is selected when users share. This applies to anonymous access, internal and direct links. Allowed values None,View,Edit
|
|
163
|
+
: Choose the dafault permission that is selected when users share. This applies to anonymous access, internal and direct links. Allowed values `None,View,Edit`
|
|
164
164
|
|
|
165
165
|
`--ConditionalAccessPolicy [ConditionalAccessPolicy]`
|
|
166
|
-
: Configures conditional access policy. Allowed values AllowFullAccess,AllowLimitedAccess,BlockAccess
|
|
166
|
+
: Configures conditional access policy. Allowed values `AllowFullAccess,AllowLimitedAccess,BlockAccess`
|
|
167
167
|
|
|
168
168
|
`--AllowDownloadingNonWebViewableFiles [AllowDownloadingNonWebViewableFiles]`
|
|
169
169
|
: Allows downloading non web viewable files. The Allowed values `true,false`
|
|
@@ -181,7 +181,7 @@ m365 spo tenant settings set [options]
|
|
|
181
181
|
: Sets email attestation to required. Allowed values `true,false`
|
|
182
182
|
|
|
183
183
|
`--EmailAttestationReAuthDays [EmailAttestationReAuthDays]`
|
|
184
|
-
: Sets email attestation re-auth days
|
|
184
|
+
: Sets email attestation re-auth days
|
|
185
185
|
|
|
186
186
|
`--HideDefaultThemes [HideDefaultThemes]`
|
|
187
187
|
: Defines if the default themes are visible or hidden. Allowed values `true,false`
|
|
@@ -223,7 +223,7 @@ m365 spo tenant settings set [options]
|
|
|
223
223
|
: Is unmanaged sync client for tenant restricted. Allowed values `true,false`
|
|
224
224
|
|
|
225
225
|
`--LimitedAccessFileType [LimitedAccessFileType]`
|
|
226
|
-
: Allows users to preview only Office files in the browser. This option increases security but may be a barrier to user productivity. Allowed values OfficeOnlineFilesOnly,WebPreviewableFiles,OtherFiles
|
|
226
|
+
: Allows users to preview only Office files in the browser. This option increases security but may be a barrier to user productivity. Allowed values `OfficeOnlineFilesOnly,WebPreviewableFiles,OtherFiles`
|
|
227
227
|
|
|
228
228
|
`--OptOutOfGrooveBlock [OptOutOfGrooveBlock]`
|
|
229
229
|
: Opts out of the groove block. Allowed values `true,false`
|
|
@@ -241,23 +241,29 @@ m365 spo tenant settings set [options]
|
|
|
241
241
|
: Show NGSC dialog for sync on OneDrive for Business. Allowed values `true,false`
|
|
242
242
|
|
|
243
243
|
`--SpecialCharactersStateInFileFolderNames [SpecialCharactersStateInFileFolderNames]`
|
|
244
|
-
: Sets the special characters state in file and folder names in SharePoint and OneDrive for Business. Allowed values NoPreference,Allowed,Disallowed
|
|
244
|
+
: Sets the special characters state in file and folder names in SharePoint and OneDrive for Business. Allowed values `NoPreference,Allowed,Disallowed`
|
|
245
245
|
|
|
246
246
|
`--SyncPrivacyProfileProperties [SyncPrivacyProfileProperties]`
|
|
247
247
|
: Syncs privacy profile properties. Allowed values `true,false`
|
|
248
248
|
|
|
249
249
|
`--ExcludedFileExtensionsForSyncClient [ExcludedFileExtensionsForSyncClient]`
|
|
250
|
-
: Excluded file extensions for sync client. Array of strings split by comma
|
|
250
|
+
: Excluded file extensions for sync client. Array of strings split by comma
|
|
251
251
|
|
|
252
252
|
`--AllowedDomainListForSyncClient [AllowedDomainListForSyncClient]`
|
|
253
|
-
: Sets allowed domain list for sync client. Array of GUIDs split by comma
|
|
253
|
+
: Sets allowed domain list for sync client. Array of GUIDs split by comma. Example: `c9b1909e-901a-0000-2cdb-e91c3f46320a,c9b1909e-901a-0000-2cdb-e91c3f463201`
|
|
254
254
|
|
|
255
255
|
`--DisabledWebPartIds [DisabledWebPartIds]`
|
|
256
|
-
: Sets disabled web part Ids. Array of GUIDs split by comma
|
|
256
|
+
: Sets disabled web part Ids. Array of GUIDs split by comma. Example: `c9b1909e-901a-0000-2cdb-e91c3f46320a,c9b1909e-901a-0000-2cdb-e91c3f463201`
|
|
257
257
|
|
|
258
258
|
`--DisableCustomAppAuthentication [DisableCustomAppAuthentication]`
|
|
259
259
|
: Configure if ACS-based app-only auth should be disabled or not. Allowed values `true,false`
|
|
260
260
|
|
|
261
|
+
`--EnableAzureADB2BIntegration [EnableAzureADB2BIntegration]`
|
|
262
|
+
: Enables the preview for OneDrive and SharePoint integration with Azure AD B2B. Allowed values `true,false`. Azure AD one-time passcode needs to be enabled for this integration to work. For more information see [http://aka.ms/spo-b2b-integration](https://aka.ms/spo-b2b-integration).
|
|
263
|
+
|
|
264
|
+
`--SyncAadB2BManagementPolicy [SyncAadB2BManagementPolicy]`
|
|
265
|
+
: Syncs Azure B2B Management Policies. Allowed values `true,false`. For more information, see [SharePoint and OneDrive integration with Azure AD B2B](https://aka.ms/spo-b2b-integration).
|
|
266
|
+
|
|
261
267
|
!!! important
|
|
262
268
|
To use this command you have to have permissions to access the tenant admin site.
|
|
263
269
|
|
|
@@ -274,3 +280,16 @@ Sets multiple tenant global settings at once
|
|
|
274
280
|
```sh
|
|
275
281
|
m365 spo tenant settings set --UserVoiceForFeedbackEnabled true --HideSyncButtonOnODB true --AllowedDomainListForSyncClient c9b1909e-901a-0000-2cdb-e91c3f46320a,c9b1909e-901a-0000-2cdb-e91c3f463201
|
|
276
282
|
```
|
|
283
|
+
|
|
284
|
+
Enable Azure AD B2B integration for SharePoint and OneDrive and sync the Azure AD B2B management policies
|
|
285
|
+
|
|
286
|
+
```sh
|
|
287
|
+
m365 spo tenant settings set --EnableAzureADB2BIntegration true
|
|
288
|
+
m365 spo tenant settings set --SyncAadB2BManagementPolicy true
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
Disable Azure AD B2B integration for SharePoint and OneDrive
|
|
292
|
+
|
|
293
|
+
```sh
|
|
294
|
+
m365 spo tenant settings set --EnableAzureADB2BIntegration false
|
|
295
|
+
```
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# teams channel membership list
|
|
2
|
+
|
|
3
|
+
Lists memberships in the specified Microsoft Teams team channel
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
m365 teams channel membership list [options]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Options
|
|
12
|
+
|
|
13
|
+
`--teamId [teamId]`
|
|
14
|
+
: The Id of the Microsoft Teams team. Specify either `teamId` or `teamName` but not both
|
|
15
|
+
|
|
16
|
+
`--teamName [teamName]`
|
|
17
|
+
: The display name of the Microsoft Teams team. Specify either `teamId` or `teamName` but not both
|
|
18
|
+
|
|
19
|
+
`--channelId [channelId]`
|
|
20
|
+
: The Id of the Microsoft Teams team channel. Specify either `channelId` or `channelName` but not both
|
|
21
|
+
|
|
22
|
+
`--channelName [channelName]`
|
|
23
|
+
: The display name of the Microsoft Teams team channel. Specify either `channelId` or `channelName` but not both
|
|
24
|
+
|
|
25
|
+
`-r, --role [role]`
|
|
26
|
+
: Filter the results to only users with the given role: owner, member, guest
|
|
27
|
+
|
|
28
|
+
--8<-- "docs/cmd/_global.md"
|
|
29
|
+
|
|
30
|
+
## Examples
|
|
31
|
+
|
|
32
|
+
List the memberships in a specified Microsoft Teams team with id 00000000-0000-0000-0000-000000000000 and channel id 00:00000000000000000000000000000000@thread.skype
|
|
33
|
+
|
|
34
|
+
```sh
|
|
35
|
+
m365 teams channel membership list --teamId 00000000-0000-0000-0000-000000000000 --channelId 00:00000000000000000000000000000000@thread.skype
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
List the memberships in a specified Microsoft Teams team with name _Team Name_ and channel with name _Channel Name_
|
|
39
|
+
|
|
40
|
+
```sh
|
|
41
|
+
m365 teams channel membership list --teamName "Team Name" --channelName "Channel Name"
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
List all owner memberships in the specified Microsoft Teams team with id 00000000-0000-0000-0000-000000000000 and channel id 00:00000000000000000000000000000000@thread.skype
|
|
45
|
+
|
|
46
|
+
```sh
|
|
47
|
+
m365 teams channel membership list --teamId 00000000-0000-0000-0000-000000000000 --channelId 00:00000000000000000000000000000000@thread.skype --role owner
|
|
48
|
+
```
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# teams chat get
|
|
2
|
+
|
|
3
|
+
Get a Microsoft Teams chat conversation by id, participants or chat name.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
m365 teams chat get [options]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Options
|
|
12
|
+
|
|
13
|
+
`-i, --id [id]`
|
|
14
|
+
: The ID of the chat conversation. Specify either `id`, `name` or `participants`, but not multiple.
|
|
15
|
+
|
|
16
|
+
`-n, --name [name]`
|
|
17
|
+
: The display name of the chat conversation. Specify either `id`, `name` or `participants`, but not multiple.
|
|
18
|
+
|
|
19
|
+
`-p, --participants [participants]`
|
|
20
|
+
: A comma-separated list of one or more e-mail addresses. Specify either `id`, `name` or `participants`, but not multiple.
|
|
21
|
+
|
|
22
|
+
--8<-- "docs/cmd/_global.md"
|
|
23
|
+
|
|
24
|
+
## Remarks
|
|
25
|
+
|
|
26
|
+
The output will not include the chat conversation members or messages. It will just retrieve the conversation details.
|
|
27
|
+
When using the `participants` option, the signed-in user will automatically be included as a participant. There's no need to add it to the list manually.
|
|
28
|
+
|
|
29
|
+
## Examples
|
|
30
|
+
|
|
31
|
+
Get a Microsoft Teams chat conversation by id
|
|
32
|
+
|
|
33
|
+
```sh
|
|
34
|
+
m365 teams chat get --id 19:2da4c29f6d7041eca70b638b43d45437@thread.v2
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Get a Microsoft Teams one on one chat conversation, finding it by participant.
|
|
38
|
+
|
|
39
|
+
```sh
|
|
40
|
+
m365 teams chat get --participants alexw@contoso.com
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Get a Microsoft Teams group chat conversation, finding it by participants.
|
|
44
|
+
|
|
45
|
+
```sh
|
|
46
|
+
m365 teams chat get --participants alexw@contoso.com,meganb@contoso.com
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Get a Microsoft Teams chat conversation, finding it by display name
|
|
50
|
+
|
|
51
|
+
```sh
|
|
52
|
+
m365 teams chat get --name "Just a conversation"
|
|
53
|
+
```
|