Skip to content

Commit 79838fc

Browse files
committed
Merge branch 'master' into ChrisdaCopyOfQinezh-test
2 parents 675afa2 + 5d9d6da commit 79838fc

File tree

291 files changed

+1358
-2680
lines changed

Some content is hidden

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

291 files changed

+1358
-2680
lines changed

exchange/docs-conceptual/exchange-eop/connect-to-exchange-online-protection-powershell.md

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,12 @@ In standalone Exchange Online Protection (EOP) organizations without Exchange On
5050
Set-ExecutionPolicy RemoteSigned
5151
```
5252

53-
- Windows Remote Management (WinRM) needs to be enabled (it's not enabled by default in Windows 7, 8.1 and 10). To enable it, run this command **in a Command Prompt**:
54-
55-
```dos
56-
winrm quickconfig
57-
```
58-
5953
- WinRM needs to allow Basic authentication (it's enabled by default). We don't send the username and password combination, but the Basic authentication header is required to transport the session's OAuth token, since the client-side WinRM implementation has no support for OAuth.
6054

6155
To verify that Basic authentication is enabled for WinRM, run this command **in a Command Prompt**:
56+
57+
> [!NOTE]
58+
> You must temporarily enable WinRM to run the following commands. You can enable it by running "winrm quickconfig".
6259
6360
```dos
6461
winrm get winrm/config/client/auth

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

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,15 +57,12 @@ Exchange Online PowerShell allows you to manage your Exchange Online settings fr
5757
Set-ExecutionPolicy RemoteSigned
5858
```
5959

60-
- Windows Remote Management (WinRM) needs to be enabled (it's not enabled by default in Windows 7, 8.1 and 10). To enable it, run this command **in a Command Prompt**:
61-
62-
```dos
63-
winrm quickconfig
64-
```
65-
6660
- WinRM needs to allow Basic authentication (it's enabled by default). We don't send the username and password combination, but the Basic authentication header is required to transport the session's OAuth token, since the client-side WinRM implementation has no support for OAuth.
6761

6862
To verify that Basic authentication is enabled for WinRM, run this command **in a Command Prompt**:
63+
64+
> [!NOTE]
65+
> You must temporarily enable WinRM to run the following commands. You can enable it by running "winrm quickconfig".
6966
7067
```dos
7168
winrm get winrm/config/client/auth

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

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,12 @@ If you want to use multi-factor authentication (MFA) to connect to Exchange Onli
4242

4343
<sup>\*</sup> This version of windows has reached end of support, and is now only supported when running in Azure virtual machines. To use this version of Windows, you need to install the Microsoft .NET Framework 4.5 or later and then an updated version of the Windows Management Framework: 3.0, 4.0, or 5.1 (only one). For more information, see [Installing the .NET Framework](https://go.microsoft.com/fwlink/p/?LinkId=257868), [Windows Management Framework 3.0](https://go.microsoft.com/fwlink/p/?LinkId=272757), [Windows Management Framework 4.0](https://go.microsoft.com/fwlink/p/?LinkId=391344), and [Windows Management Framework 5.1](https://aka.ms/wmf5download).
4444

45-
- Windows Remote Management (WinRM) needs to be enabled (it's not enabled by default in Windows 7, 8.1 and 10). To enable it, run this command **in a Command Prompt**:
46-
47-
```dos
48-
winrm quickconfig
49-
```
50-
5145
- WinRM needs to allow Basic authentication (it's enabled by default). We don't send the username and password combination, but the Basic authentication header is required to transport the session's OAuth token, since the client-side WinRM implementation has no support for OAuth.
5246

5347
To verify that Basic authentication is enabled for WinRM, run this command **in a Command Prompt**:
48+
49+
> [!NOTE]
50+
> You must temporarily enable WinRM to run the following commands. You can enable it by running "winrm quickconfig".
5451
5552
```dos
5653
winrm get winrm/config/client/auth

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,13 @@ The following examples show how to use the Exchange Online PowerShell V2 module
3030
```powershell
3131
Connect-ExchangeOnline -CertificateFilePath "C:\Users\johndoe\Desktop\automation-cert.pfx" -AppID "alpha-beta-gamma-123456" -TenantID "contosoelectronics.onmicrosoft.com"
3232
```
33-
33+
3434
- Connect using a certificate thumbprint:
3535

3636
```powershell
3737
Connect-ExchangeOnline -CertificateThumbPrint "012THISISADEMOTHUMBPRINT" -AppID "alpha-beta-gamma-123456" -TenantID "contosoelectronics.onmicrosoft.com"
3838
```
39+
3940
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.
4041

4142
- Connect using an existing service principal and client-secret:

exchange/docs-conceptual/exchange-online/exchange-online-powershell-v2/cmdlet-property-sets.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ description: "Learn about the available property sets in the Exchange Online Pow
2020

2121
This topic describes the property sets that are available in the new cmdlets in the [Exchange Online PowerShell V2 module](exchange-online-powershell-v2.md). For more information about property sets, see [Properties and property sets in the EXO V2 module](exchange-online-powershell-v2.md#properties-and-property-sets-in-the-exo-v2-module).
2222

23+
For more information about filtering in the EXO V2 module, see [Filters in the Exchange Online V2 module](filters-v2.md).
24+
2325
## Get-EXOCasMailbox property sets
2426

2527
The available property sets for the **Get-EXOCasMailbox** cmdlet and the properties they contain are described in the following table:

exchange/docs-conceptual/exchange-online/exchange-online-powershell-v2/exchange-online-powershell-v2.md

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,7 @@ description: "Learn how to download and use the Exchange Online PowerShell V2 mo
2121
The Exchange Online PowerShell V2 module (abbreviated as the EXO V2 module) enables admins to connect to their Exchange Online environment in Microsoft 365 to retrieve data, create new objects, update existing objects, remove objects as well as configure Exchange Online and its features.
2222

2323
## Report bugs and issues
24-
25-
The Exchange Online PowerShell V2 module is currently in Preview. If you have any feedback, concerns, or are facing any issues with the EXO V2 module, contact us at exocmdletpreview[at]service[dot]microsoft[dot]com (email address intentionally obscured to help prevent spam).
26-
27-
When you report an issue, be sure to include the log files in your email message.
28-
29-
To generate the log files, replace \<Path to store log file\> with the output folder you want, and run the following command:
24+
When you report an issue, be sure to include the log files in your email message. To generate the log files, replace \<Path to store log file\> with the output folder you want, and run the following command:
3025

3126
```PowerShell
3227
Connect-ExchangeOnline -EnableErrorReporting -LogDirectoryPath <Path to store log file> -LogLevel All
@@ -54,6 +49,8 @@ The new cmdlets in the EXO V2 module are listed in the following table:
5449
|[Get-EXOMailboxFolderStatistics](https://docs.microsoft.com/powershell/module/exchange/get-exomailboxfolderstatistics)|[Get-MailboxFolderStatistics](https://docs.microsoft.com/powershell/module/exchange/mailboxes/get-mailboxfolderstatistics)|
5550
|[Get-EXOMailboxFolderPermission](https://docs.microsoft.com/powershell/module/exchange/get-exomailboxfolderpermission)|[Get-MailboxFolderPermission](https://docs.microsoft.com/powershell/module/exchange/mailboxes/get-mailboxfolderpermission)|
5651
|[Get-EXOMobileDeviceStatistics](https://docs.microsoft.com/powershell/module/exchange/get-exomobiledevicestatistics)|[Get-MobileDeviceStatistics](https://docs.microsoft.com/powershell/module/exchange/devices/get-mobiledevicestatistics)|
52+
|[Disconnect-ExchangeOnline](https://docs.microsoft.com/powershell/module/exchange/disconnect-exchangeonline)|[Remove-PSSession](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/remove-pssession)|
53+
|[Connect-IPPSSession](https://docs.microsoft.com/powershell/module/exchange/connect-ippssession)|[Connect-IPPSSession](https://docs.microsoft.com/powershell/exchange/office-365-scc/connect-to-scc-powershell/mfa-connect-to-scc-powershell)|
5754

5855
## Install and maintain the Exchange Online PowerShell V2 module
5956

@@ -84,15 +81,12 @@ You can download the EXO V2 module from the PowerShell gallery [here](https://ww
8481

8582
<sup>\*</sup> This version of windows has reached end of support, and is now only supported when running in Azure virtual machines. To use this version of Windows, you need to install the Microsoft .NET Framework 4.5 or later and then the Windows Management Framework 5.1. For more information, see [Windows Management Framework 5.1](https://aka.ms/wmf5download).
8683

87-
- Windows Remote Management (WinRM) needs to be enabled (it's not enabled by default in Windows 7, 8.1 and 10). To enable it, run this command **in a Command Prompt**:
88-
89-
```dos
90-
winrm quickconfig
91-
```
92-
9384
- WinRM needs to allow Basic authentication (it's enabled by default). We don't send the username and password combination, but the Basic authentication header is required to transport the session's OAuth token, since the client-side WinRM implementation has no support for OAuth.
9485

9586
To verify that Basic authentication is enabled for WinRM, run this command **in a Command Prompt**:
87+
88+
> [!NOTE]
89+
> You must temporarily enable WinRM to run the following commands. You can enable it by running "winrm quickconfig".
9690
9791
```dos
9892
winrm get winrm/config/client/auth
@@ -273,9 +267,25 @@ Get-EXOMailbox -ResultSize 10 -PropertySets All
273267
> [!NOTE]
274268
> We highly discourage using the _PropertySets_ parameter with the value `All` because it slows down the cmdlet and reduces reliability. Always use the _PropertySets_ and _Properties_ parameters to retrieve only the required properties.
275269
270+
For more information about filtering in the EXO V2 module, see [Filters in the Exchange Online V2 module](filters-v2.md).
271+
276272
## Release notes
277273

278-
### Current release: Version 0.4578.0
274+
### Current release: Version 1.0.1
275+
276+
- This is the General Availability (GA) version of the EXO PowerShell V2 Module. It is stable and ready for use in production environments.
277+
278+
- Get-ExoMobileDeviceStatistics cmdlet now supports Identity parameter.
279+
280+
- Improved reliability of session auto-reconnect in certain cases where a script was running for ~50 minutes and threw a "Cmdlet not found" error due to a bug in auto-reconnect logic.
281+
282+
- Fixed data-type issues of two commonly used "User" and "MailboxFolderUser" attributes for easy migration of scripts.
283+
284+
- Enhanced support for filters as it now supports four more operators: EndsWith, Contains, Not and NotLike support. Check online documentation for attributes that aren't supported in filters.
285+
286+
### Previous releases
287+
288+
#### Version 0.4578.0
279289

280290
- Added support for configuring the Briefing Email for your organization at the user level with **Set-UserBriefingConfig** and **Get-UserBriefingConfig** cmdlets.
281291

@@ -291,8 +301,6 @@ Get-EXOMailbox -ResultSize 10 -PropertySets All
291301

292302
- Optimized memory usage when a session is created by re-using any existing module with a new session instead of creating a new one every time session is imported.
293303

294-
### Previous releases
295-
296304
#### Version 0.4368.1
297305

298306
- Added support for Security & Compliance Center PowerShell cmdlets using the **Connect-IPPSSession** cmdlet.
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
---
2+
title: Filters in the V2 module
3+
ms.author: chrisda
4+
author: chrisda
5+
manager: dansimp
6+
ms.date:
7+
ms.audience: Admin
8+
ms.topic: article
9+
ms.service: exchange-online
10+
ms.reviewer: navgupta
11+
localization_priority: Priority
12+
ms.collection: Strat_EX_Admin
13+
ms.custom:
14+
ms.assetid:
15+
search.appverid: MET150
16+
description: "Learn about how to use filtering for cmdlets in the Exchange Online V2 module."
17+
---
18+
19+
# Filters in the Exchange Online V2 module
20+
21+
The Exchange Online PowerShell V2 module (abbreviated as the EXO V2 module) contains a few new cmdlets that are optimized for high speed, high volume operations, and (after you connect to your organization) gives you access to the hundreds of existing cmdlets in the service. For more information, see [Use the Exchange Online PowerShell V2 module](exchange-online-powershell-v2.md).
22+
23+
In order to get the most out of the EXO V2 module, you need to follow the guidance in this topic.
24+
25+
## Use client-side filtering for the best performance
26+
27+
Server-side filtering uses the available _Filter_ or _RecipientFilter_ parameters on a cmdlet. Client-side filtering uses the [Where-Object](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/where-object) cmdlet (also known as **where** or **?**).
28+
29+
Generally, you get much better performance with server-side filtering. However, for the EXO V2 module, you actually get better performance when using client-side filtering. We're working on improving the performance of server-side filtering in module.
30+
31+
## Supported and unsupported attributes
32+
33+
Although the EXO V2 module supports the majority of filterable attributes, the following attributes are currently not supported for filtering:
34+
35+
||||
36+
|---|---|---|
37+
|**Cmdlet**|**Attribute**|**LDAP Display Name**|
38+
|[Get-CASMailbox](https://docs.microsoft.com/powershell/module/exchange/get-casmailbox)|MemberOfGroup <br/><br/> ExternalDirectoryObjectId|memberOf <br/><br/> msExchExternalDirectoryObjectId|
39+
|[Get-Mailbox](https://docs.microsoft.com/powershell/module/exchange/get-mailbox)|DeletedItemFlags <br/><br/> ExternalDirectoryObjectId <br/><br/> LanguagesRaw <br/><br/> MasterAccountSid <br/><br/> MemberOfGroup <br/><br/> RequireAllSendersAreAuthenticated <br/><br/> SCLDeleteThresholdInt <br/><br/> SCLJunkThresholdInt <br/><br/> SCLQuarantineThresholdInt <br/><br/> SCLRejectThresholdInt|deletedItemFlags <br/><br/> msExchExternalDirectoryObjectId <br/><br/> msExchUserCulture <br/><br/> msExchMasterAccountSid <br/><br/> memberOf <br/><br/> msExchRequireAuthToSendTo <br/><br/> msExchMessageHygieneSCLDeleteThreshold <br/><br/> msExchMessageHygieneSCLJunkThreshold <br/><br/> msExchMessageHygieneSCLQuarantineThreshold <br/><br/> msExchMessageHygieneSCLRejectThreshold|
40+
|[Get-Recipient](https://docs.microsoft.com/powershell/module/exchange/get-recipient)|CountryCode <br/><br/> ExternalDirectoryObjectId <br/><br/> MasterAccountSid <br/><br/> MemberOfGroup <br/><br/> Members|countryCode <br/><br/> msExchExternalDirectoryObjectId <br/><br/> msExchMasterAccountSid <br/><br/> memberOf <br/><br/> member|
41+
|
42+
43+
## Supported and unsupported operators
44+
45+
The following operators are fully supported for all string formats in the EXO V2 module:
46+
47+
- -eq
48+
- -and
49+
- -ne
50+
- -or
51+
- -not
52+
- -lt
53+
- -gt
54+
55+
The -like and -notlike operators are limited in using wildcards (*). Specifically, you can only use wildcards at the beginning of a string value, at the end of a string value, or both.
56+
57+
For example, the following text search is not supported:
58+
59+
`"UPN -like 'A*B*C'`
60+
61+
However, the following searches are supported:
62+
63+
`"UPN -like 'A*' -and UPN -like '*C' -and UPN like '*B*'"`

exchange/docs-conceptual/exchange-server/recipient-filters/filter-properties.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ The properties that have been _confirmed_ to work with the _Filter_ parameter in
104104
|_AuditLogAgeLimit_|_msExchMailboxAuditLogAgeLimit_|**Get-Mailbox** <br/> **Get-UnifiedGroup**|A time span value: _dd.hh:mm:ss_ where _dd_ = days, _hh_ = hours, _mm_ = minutes, and _ss_ = seconds.|You can't use the _Filter_ parameter to look for time span values for this property. Instead, use this syntax: `Get-Mailbox | where "$_.AuditLogAgeLimit -<Operator> '<TimeSpan>'"`. For example, `Get-Mailbox | where "$_.AuditLogAgeLimit -gt '60.00:00:00'"`.|
105105
|_AuthenticationPolicy_|_msExchAuthPolicyLink_|**Get-User**|String (wildcards accepted) or `$null`|For example, `Get-User -Filter "AuthenticationPolicy -eq 'CN=Block Basic Auth,CN=Auth Policies,CN=Configuration,CN=contoso.onmicrosoft.com,CN=ConfigurationUnits,DC=NAMPR11B009,DC=PROD,DC=OUTLOOK,DC=COM'"`.|
106106
|_BlockedSendersHash_|_msExchBlockedSendersHash_|**Get-Recipient**|Blank ( `$null`) or a hashed value.|Realistically, you can only use this value to filter on blank or non-blank values. For example, `Get-Recipient -Filter 'BlockedSendersHash -ne $null'.`|
107-
|_c_|_c_|**Get-Contact** <br/> **Get-LinkedUser** <br/> **Get-Recipient** <br/> **Get-SecurityPrincipal** <br/> **Get-User**|String (wildcards accepted) or `$null`|This filter requires the ISO 3166-1 two-letter country code for the user (for example, `S` for the United States). This property is used together with the _co_ and _countryCode_ properties to define the user's country in Active Directory. <br/> For example, `Get-User -Filter "c -eq 'US'"`.|
107+
|_c_|_c_|**Get-Contact** <br/> **Get-LinkedUser** <br/> **Get-Recipient** <br/> **Get-SecurityPrincipal** <br/> **Get-User**|String (wildcards accepted) or `$null`|This filter requires the ISO 3166-1 two-letter country code for the user (for example, `US` for the United States). This property is used together with the _co_ and _countryCode_ properties to define the user's country in Active Directory. <br/> For example, `Get-User -Filter "c -eq 'US'"`.|
108108
|_CalendarLoggingQuota_|_msExchCalendarLoggingQuota_|**Get-Mailbox**|A byte quantified size value (for example, `300MB` or `1.5GB`), or `Unlimited`. Unqualified values are treated as bytes.|You can only use the _Filter_ parameter to look for the value `Unlimited` for this property. For example, `Get-Mailbox -Filter "CalendarLoggingQuota -eq 'Unlimited'"` or `Get-Mailbox -Filter "CalendarLoggingQuota -ne 'Unlimited'"`. <br/> You can't use the _Filter_ parameter to look for size values of this property. Instead, use this syntax: `Get-Mailbox | where "$_.CalendarLoggingQuota -<Operator> '<Size>'"`. For example, `Get-Mailbox | where "$_.CalendarLoggingQuota -gt '10GB'"`.|
109109
|_CalendarRepairDisabled_|_msExchCalendarRepairDisabled_|**Get-Mailbox**|Boolean (`$true` or `$false`)|For example, `Get-Mailbox -Filter 'CalendarRepairDisabled -eq $true'`.|
110110
|_CertificateSubject_|n/a|**Get-LinkedUser** <br/> **Get-User**|String or `$null`|The X509 certificate that's published for the user account (visible on the **Published Certificates** tab in Active Directory Users and Computers). <br/> For example, `Get-User -Filter "CertificateSubject -eq 'X509:<I>C=US,O=InternetCA,CN=APublicCertificateAuthority<S>C=US,O=Fabrikam,OU=Sales,CN=Jeff Smith`')|

exchange/docs-conceptual/office-365-scc/connect-to-scc-powershell/connect-to-scc-powershell.md

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,12 @@ For more information about the Security & Compliance Center, see [Security & Com
5656
Set-ExecutionPolicy RemoteSigned
5757
```
5858

59-
- Windows Remote Management (WinRM) needs to be enabled (it's not enabled by default in Windows 7, 8.1 and 10). To enable it, run this command **in a Command Prompt**:
60-
61-
```dos
62-
winrm quickconfig
63-
```
64-
6559
- WinRM needs to allow Basic authentication (it's enabled by default). We don't send the username and password combination, but the Basic authentication header is required to transport the session's OAuth token, since the client-side WinRM implementation has no support for OAuth.
6660

6761
To verify that Basic authentication is enabled for WinRM, run this command **in a Command Prompt**:
62+
63+
> [!NOTE]
64+
> You must temporarily enable WinRM to run the following commands. You can enable it by running "winrm quickconfig".
6865
6966
```dos
7067
winrm get winrm/config/client/auth

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

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,12 @@ If your account uses multi-factor authentication (MFA) or federated authenticati
4242

4343
<sup>\*</sup> This version of windows has reached end of support, and is now only supported when running in Azure virtual machines. To use this version of Windows, you need to install the Microsoft .NET Framework 4.5 or later and then an updated version of the Windows Management Framework: 3.0, 4.0, or 5.1 (only one). For more information, see [Installing the .NET Framework](https://go.microsoft.com/fwlink/p/?LinkId=257868), [Windows Management Framework 3.0](https://go.microsoft.com/fwlink/p/?LinkId=272757), [Windows Management Framework 4.0](https://go.microsoft.com/fwlink/p/?LinkId=391344), and [Windows Management Framework 5.1](https://aka.ms/wmf5download).
4444

45-
- Windows Remote Management (WinRM) needs to be enabled (it's not enabled by default in Windows 7, 8.1 and 10). To enable it, run this command **in a Command Prompt**:
46-
47-
```dos
48-
winrm quickconfig
49-
```
50-
5145
- WinRM needs to allow Basic authentication (it's enabled by default). We don't send the username and password combination, but the Basic authentication header is required to transport the session's OAuth token, since the client-side WinRM implementation has no support for OAuth.
5246

5347
To verify that Basic authentication is enabled for WinRM, run this command **in a Command Prompt**:
48+
49+
> [!NOTE]
50+
> You must temporarily enable WinRM to run the following commands. You can enable it by running "winrm quickconfig".
5451
5552
```dos
5653
winrm get winrm/config/client/auth

0 commit comments

Comments
 (0)