Skip to content

Commit fc40f87

Browse files
committed
Merge branch 'master' into Labels-chrisda
2 parents ca989a6 + 29af11a commit fc40f87

File tree

329 files changed

+864
-832
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

329 files changed

+864
-832
lines changed

exchange/docs-conceptual/app-only-auth-powershell-v2.md

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,16 @@ ms.custom:
1414
ms.assetid:
1515
search.appverid: MET150
1616
ROBOTS: NOINDEX, NOFOLLOW
17-
description: "Learn about using the Exchange Online V2 module in scripts and other long-running tasks."
17+
description: "Learn about using the Exchange Online V2 module in scripts and other long-running tasks with Modern Authentication and app-only authentication."
1818
---
1919

20-
# Automate tasks in Exchange Online using PowerShell with Modern Authentication
21-
22-
> [!NOTE]
23-
> The features described in this topic are currently in Preview, are subject to change, and aren't available to everyone.
20+
# App-only authentication in the EXO V2 module
2421

2522
Auditing and reporting scenarios in Exchange Online often involve scripts that run unattended. In most cases, these unattended scripts access Exchange Online PowerShell using Basic authentication (a username and password). Even when the connection to Exchange Online PowerShell uses Modern authentication, the credentials are stored in a local file or a secret vault that's access at run-time.
2623

27-
Because storing user credentials locally is not a good security practice, we're releasing this feature to support authentication for app-only scenarios using AzureAD applications and self-signed certificates.
24+
Because storing user credentials locally is not a safe practice, we're releasing this feature to support authentication for unattended scripts (automation) scenarios using AzureAD applications and self-signed certificates.
2825

29-
The following examples show how to use the Exchange Online PowerShell V2 module with app-only authentication
26+
The following examples show how to use the Exchange Online PowerShell V2 module with app-only authentication:
3027

3128
- Connect using a local certificate:
3229

@@ -37,7 +34,7 @@ The following examples show how to use the Exchange Online PowerShell V2 module
3734
- Connect using a certificate thumbprint:
3835

3936
```powershell
40-
Connect-ExchangeOnline -CertificateThumbPrint "012THISISADEMOTHUMBPRINT" -AppID "alpha-beta-gamma-123456" -Organization "contosoelectronics.onmicrosoft.com"
37+
Connect-ExchangeOnline -CertificateThumbPrint "012THISISADEMOTHUMBPRINT" -AppID "alpha-beta-gamma-123456" -Organization "contosoelectronics.onmicrosoft.com"
4138
```
4239

4340
When you use the _CertificateThumbPrint_ parameter, the certificate needs to be installed on the computer where you are running the command. The certificate should be installed in the user certificate store.

exchange/docs-conceptual/filter-properties.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -211,8 +211,8 @@ The properties that have been _confirmed_ to work with the _Filter_ parameter in
211211
|_Name_|_name_|**Get-CASMailbox** <br/> **Get-Contact** <br/> **Get-DistributionGroup** <br/> **Get-DynamicDistributionGroup** <br/> **Get-Group** <br/> **Get-LinkedUser** <br/> **Get-Mailbox** <br/> **Get-MailContact** <br/> **Get-MailPublicFolder** <br/> **Get-MailUser** <br/> **Get-Recipient** <br/> **Get-RemoteMailbox** <br/> **Get-SecurityPrincipal** <br/> **Get-UMMailbox** <br/> **Get-User** <br/> **Get-UnifiedGroup**|String (wildcards accepted)|For example, `Get-User -Filter "Name -like 'Laura*'"`.|
212212
|_NetID_|n/a|**Get-LinkedUser** <br/> **Get-Mailbox** <br/> **Get-User**|String or `$null`|This property is populated for Exchange Online mailboxes in hybrid environments. A sample value is `1003BFFD9A0CFA03`. <br/> For example, `Get-User -Filter 'NetId -ne $null'`.|
213213
|_Notes_|_info_|**Get-Contact** <br/> **Get-DynamicDistributionGroup** <br/> **Get-Group** <br/> **Get-LinkedUser** <br/> **Get-Recipient** <br/> **Get-User** <br/> **Get-UnifiedGroup**|String (wildcards accepted) or `$null`|For example, `Get-User -Filter "Notes -like '*Events Team*'"`.|
214-
|_ObjectCategory_|_objectCategory_|**Get-CASMailbox** <br/> **Get-Contact** <br/> **Get-DistributionGroup** <br/> **Get-DynamicDistributionGroup** <br/> **Get-Group** <br/> **Get-LinkedUser** <br/> **Get-Mailbox** <br/> **Get-MailContact** <br/> **Get-MailPublicFolder** <br/> **Get-MailUser** <br/> **Get-Recipient** <br/> **Get-RemoteMailbox** <br/> **Get-SecurityPrincipal** <br/> **Get-UMMailbox** <br/> **Get-User** <br/> **Get-UnifiedGroup**|String|This filter requires the canonical distinguished name of the object. The value uses the syntax `<___domain>/Configuration/Schema/<Type>`. <br/> Valid _\<Type\>_ values are: `Person` for mailboxes, mail users, and mail contacts, `Group` for distribution groups, mail-enabled security groups and Microsoft 365 groups, `ms-Exch-Public-Folder` for mail-enabled public folders, and `ms-Exch-Dynamic-Distribution-List` for dynamic distribution groups. <br/> For example, `Get-Recipient -Filter "ObjectCategory -eq 'contoso.com/Configuration/Schema/Group'"`.|
215-
|_ObjectClass_|_objectClass_|**Get-CASMailbox** <br/> **Get-Contact** <br/> **Get-DistributionGroup** <br/> **Get-DynamicDistributionGroup** <br/> **Get-Group** <br/> **Get-LinkedUser** <br/> **Get-Mailbox** <br/> **Get-MailContact** <br/> **Get-MailPublicFolder** <br/> **Get-MailUser** <br/> **Get-Recipient** <br/> **Get-RemoteMailbox** <br/> **Get-SecurityPrincipal** <br/> **Get-UMMailbox** <br/> **Get-User** <br/> **Get-UnifiedGroup**|String|The value of this property is `top, person, organizationalPerson, user` for mailboxes and mail users, `top, person, organizationalPerson, contact` for mail contacts, `top, group` for distribution groups, mail-enabled security groups and Microsoft 365 groups, `msExchDynamicDistributionList` for dynamic distribution groups and `top, publicFolder` for mail-enabled public folders <br/> For example, `Get-Recipient -Filter "ObjectClass -eq 'Contact'"`. <br/> Although this is a multivalued property, the filter will return a match if the property _contains_ the specified value.|
214+
|_ObjectCategory_|_objectCategory_|**Get-CASMailbox** <br/> **Get-Contact** <br/> **Get-DistributionGroup** <br/> **Get-DynamicDistributionGroup** <br/> **Get-Group** <br/> **Get-LinkedUser** <br/> **Get-Mailbox** <br/> **Get-MailContact** <br/> **Get-MailPublicFolder** <br/> **Get-MailUser** <br/> **Get-Recipient** <br/> **Get-RemoteMailbox** <br/> **Get-SecurityPrincipal** <br/> **Get-UMMailbox** <br/> **Get-User** <br/> **Get-UnifiedGroup**|String|This filter requires the canonical distinguished name of the object. The value uses the syntax `<___domain>/Configuration/Schema/<Type>`. <br/> Valid _\<Type\>_ values are: `Person` for mailboxes, mail users, and mail contacts, `Group` for distribution groups, mail-enabled security groups and Microsoft 365 Groups, `ms-Exch-Public-Folder` for mail-enabled public folders, and `ms-Exch-Dynamic-Distribution-List` for dynamic distribution groups. <br/> For example, `Get-Recipient -Filter "ObjectCategory -eq 'contoso.com/Configuration/Schema/Group'"`.|
215+
|_ObjectClass_|_objectClass_|**Get-CASMailbox** <br/> **Get-Contact** <br/> **Get-DistributionGroup** <br/> **Get-DynamicDistributionGroup** <br/> **Get-Group** <br/> **Get-LinkedUser** <br/> **Get-Mailbox** <br/> **Get-MailContact** <br/> **Get-MailPublicFolder** <br/> **Get-MailUser** <br/> **Get-Recipient** <br/> **Get-RemoteMailbox** <br/> **Get-SecurityPrincipal** <br/> **Get-UMMailbox** <br/> **Get-User** <br/> **Get-UnifiedGroup**|String|The value of this property is `top, person, organizationalPerson, user` for mailboxes and mail users, `top, person, organizationalPerson, contact` for mail contacts, `top, group` for distribution groups, mail-enabled security groups and Microsoft 365 Groups, `msExchDynamicDistributionList` for dynamic distribution groups and `top, publicFolder` for mail-enabled public folders <br/> For example, `Get-Recipient -Filter "ObjectClass -eq 'Contact'"`. <br/> Although this is a multivalued property, the filter will return a match if the property _contains_ the specified value.|
216216
|_Office_|_physicalDeliveryOfficeName_|**Get-Contact** <br/> **Get-LinkedUser** <br/> **Get-Mailbox** <br/> **Get-Recipient** <br/> **Get-User**|String (wildcards accepted) or `$null`|For example, `Get-User -Filter "Office -like '22*'"`.|
217217
|_OfflineAddressBook_|_msExchUseOAB_|**Get-Mailbox**|String or `$null`|This filter requires the distinguished name of the offline address book. For example, `Get-Mailbox -Arbitration -Filter "OfflineAddressBook -eq 'CN=OAB 1,CN=Offline Address Lists,CN=Address Lists Container,CN=Contoso Corporation,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=contoso,DC=com'"` <br/> You can find the distinguished names of offline address books by running this command: `Get-OfflineAddressBook | Format-List Name,DistinguishedName`.|
218218
|_OnPremisesObjectId_|n/a|**Get-MailPublicFolder**|String or `$null`|For example, `Get-MailPublicFolder -Filter 'OnPremisesObjectId -ne $null'`.|

exchange/docs-conceptual/mfa-connect-to-exchange-online-powershell.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ You need to do the following steps in a browser that supports ClickOnce (for exa
116116
Connect-EXOPSSession -UserPrincipalName [email protected]
117117
```
118118

119-
This example connects to Exchange Online in Office 365 Germany using the account [email protected].
119+
This example connects to Exchange Online Germany using the account [email protected].
120120

121121
```PowerShell
122122
Connect-EXOPSSession -UserPrincipalName [email protected] -ConnectionUri https://outlook.office.de/PowerShell-LiveID -AzureADAuthorizationEndPointUri https://login.microsoftonline.de/common

exchange/docs-conceptual/mfa-connect-to-scc-powershell.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,10 @@ description: "Learn how to connect to Security & Compliance Center PowerShell by
1818
If your account uses multi-factor authentication (MFA) or federated authentication, you can't use the instructions at [Connect to Security & Compliance Center PowerShell](connect-to-scc-powershell.md) to use remote PowerShell to connect to the Security & Compliance Center. Instead, you need to install the Exchange Online Remote PowerShell Module, and use the **Connect-IPPSSession** cmdlet to connect to Security & Compliance Center PowerShell.
1919

2020
> [!NOTE]
21-
> Delegated Access Permission (DAP) partners can't use the procedures in this topic to connect to their customer tenant organizations in Security & Compliance Center PowerShell. MFA and the Exchange Online Remote PowerShell Module don't work with delegated authentication. <br/><br/> The Exchange Online Remote PowerShell Module is not supported in PowerShell Core (macOS, Linux, or Windows Nano Server). As a workaround, you can install the module on a computer that's running a supported version of Windows (physical or virtual), and use remote desktop software to connect.
21+
>
22+
> - Delegated Access Permission (DAP) partners can't use the procedures in this topic to connect to their customer tenant organizations in Security & Compliance Center PowerShell. MFA and the Exchange Online Remote PowerShell Module don't work with delegated authentication.
23+
>
24+
> - The Exchange Online Remote PowerShell Module is not supported in PowerShell Core (macOS, Linux, or Windows Nano Server). As a workaround, you can install the module on a computer that's running a supported version of Windows (physical or virtual), and use remote desktop software to connect.
2225
2326
## What do you need to know before you begin?
2427

exchange/docs-conceptual/open-the-exchange-management-shell.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,20 @@ When you open the Exchange Management Shell you can perform administrative tasks
3131
> [!TIP]
3232
> Having problems? Ask for help in the [Exchange Server](https://go.microsoft.com/fwlink/p/?linkId=60612) forums.
3333
34+
## Open the Exchange Management Shell in Windows Server 2019 Core
35+
36+
- **Mailbox servers**: Run the following command from a Command Prompt:
37+
38+
```dos
39+
LaunchEMS
40+
```
41+
42+
- **Edge Transport servers**: Run the following commands from a Command Prompt. Note that these are two separate commands on one line for ease of copying and running:
43+
44+
```dos
45+
exshell.psc1 & exchange.ps1
46+
```
47+
3448
## Open the Exchange Management Shell in Windows Server 2016 or Windows 10
3549

3650
Click **Start** > **Microsoft Exchange Server 2016 \>** **Exchange Management Shell**.

exchange/docs-conceptual/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@
4949
href: cmdlet-property-sets.md
5050
- name: Filters in the V2 module
5151
href: filters-v2.md
52+
- name: App-only authentication
53+
href: app-only-auth-powershell-v2.md
5254
- name: Security & Compliance Center PowerShell
5355
href: scc-powershell.md
5456
items:

exchange/exchange-ps/exchange/Add-ComplianceCaseMember.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ Accept wildcard characters: False
112112
```
113113
114114
### -WhatIf
115-
The WhatIf switch doesn't work in Office 365 Security & Compliance Center PowerShell.
115+
The WhatIf switch doesn't work in Security & Compliance Center PowerShell.
116116
117117
```yaml
118118
Type: SwitchParameter

exchange/exchange-ps/exchange/Add-MailboxFolderPermission.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,14 @@ This example grants the Owner role to Ed on the Marketing folder in Ayla's mailb
4545
Add-MailboxFolderPermission -Identity [email protected]:\Calendar -User [email protected] -AccessRights Editor -SharingPermissionFlags Delegate
4646
```
4747

48-
In Office 365, this example adds Julia as a calendar delegate to Ayla's mailbox, but without access to private items.
48+
In Exchange Online, this example adds Julia as a calendar delegate to Ayla's mailbox, but without access to private items.
4949

5050
### Example 3
5151
```powershell
5252
Add-MailboxFolderPermission -Identity [email protected]:\Calendar -User [email protected] -AccessRights Editor -SharingPermissionFlags Delegate,CanViewPrivateItems
5353
```
5454

55-
In Office 365, this example adds Laura as a calendar delegate to Ayla's mailbox with access to private items.
55+
In Exchange Online, this example adds Laura as a calendar delegate to Ayla's mailbox with access to private items.
5656

5757
## PARAMETERS
5858

exchange/exchange-ps/exchange/Add-MailboxPermission.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ This example assigns the user Mark Steele Full Access permission to Jeroen Cool'
9090
Get-Mailbox -ResultSize unlimited -Filter "(RecipientTypeDetails -eq 'UserMailbox') -and (Alias -ne 'Admin')" | Add-MailboxPermission -User [email protected] -AccessRights FullAccess -InheritanceType All
9191
```
9292

93-
In Office 365, this example assigns the administrator account [email protected] Full Access permission to all user mailboxes in the contoso.com Office 365 organization.
93+
In Exchange Online, this example assigns the administrator account [email protected] Full Access permission to all user mailboxes in the contoso.com organization.
9494

9595
## PARAMETERS
9696

exchange/exchange-ps/exchange/Add-RoleGroupMember.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ Accept wildcard characters: False
157157
```
158158
159159
### -WhatIf
160-
This parameter doesn't work in the Office 365 Security & Compliance Center.
160+
This parameter doesn't work in the Security & Compliance Center.
161161
162162
The WhatIf switch simulates the actions of the command. You can use this switch to view the changes that would occur without actually applying those changes. You don't need to specify a value with this switch.
163163

0 commit comments

Comments
 (0)