Skip to content

Commit 3259cbe

Browse files
Merge branch 'main' into patch-15
2 parents 268a9f9 + e78e613 commit 3259cbe

File tree

1,282 files changed

+16878
-13635
lines changed

Some content is hidden

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

1,282 files changed

+16878
-13635
lines changed

exchange/docs-conceptual/client-advanced-settings.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -317,11 +317,11 @@ Use this advanced setting in conjunction with *ScannerMinCPU* to limit CPU consu
317317

318318
- Value: \<number>**
319319

320-
The value is set to **100** by default, which means there is no limit of maximum CPU consumption. In this case, the scanner process will try to use all available CPU time to maximize your scan rates.
320+
The value is set to **100** by default, which means there is no limit of maximum CPU consumption. In this case, the scanner process tries to use all available CPU time to maximize your scan rates.
321321

322-
If you set **ScannerMaxCPU** to less than 100, the scanner will monitor the CPU consumption over the last 30 minutes. If the average CPU crossed the limit you set, it will start to reduce the number of threads allocated for new files.
322+
If you set **ScannerMaxCPU** to less than 100, the scanner monitors the CPU consumption over the last 30 minutes. If the average CPU crossed the limit you set, it starts to reduce the number of threads allocated for new files.
323323

324-
The limit on the number of threads will continue as long as CPU consumption is higher than the limit set for **ScannerMaxCPU**.
324+
The limit on the number of threads continues as long as CPU consumption is higher than the limit set for **ScannerMaxCPU**.
325325

326326
## ScannerMinCPU
327327

@@ -334,7 +334,7 @@ Used only if *ScannerMaxCPU* is not equal to 100, and cannot be set to a number
334334

335335
We recommend keeping **ScannerMinCPU** set at least 15 points lower than the value of *ScannerMaxCPU*.
336336

337-
The value is set to **50** by default, which means that if CPU consumption in the last 30 minutes when lower than this value, the scanner will start adding new threads to scan more files in parallel, until the CPU consumption reaches the level you have set for *ScannerMaxCPU*-15.
337+
The value is set to **50** by default, which means that if CPU consumption in the last 30 minutes when lower than this value, the scanner starts adding new threads to scan more files in parallel, until the CPU consumption reaches the level you have set for *ScannerMaxCPU*-15.
338338

339339
## ScannerConcurrencyLevel
340340

@@ -361,17 +361,17 @@ Set-LabelPolicy -Identity Scanner -AdvancedSettings @{ScannerConcurrencyLevel="8
361361

362362
By default, the information protection scanner scans all relevant files. However, you might want to define specific files to be skipped, such as for archived files or files that have been moved.
363363

364-
Enable the scanner to skip specific files based on their file attributes by using the **ScannerFSAttributesToSkip** advanced setting. In the setting value, list the file attributes that will enable the file to be skipped when they are all set to **true**. This list of file attributes uses the AND logic.
364+
Enable the scanner to skip specific files based on their file attributes by using the **ScannerFSAttributesToSkip** advanced setting. In the setting value, list the file attributes that enable the file to be skipped when they are all set to **true**. This list of file attributes uses the AND logic.
365365

366366
Example PowerShell commands, where your label policy is named "Global".
367367

368-
**Skip files that are both read-only and archived**
368+
**Skip files that are both read-only and archived**:
369369

370370
```PowerShell
371371
Set-LabelPolicy -Identity Global -AdvancedSettings @{ ScannerFSAttributesToSkip =" FILE_ATTRIBUTE_READONLY, FILE_ATTRIBUTE_ARCHIVE"}
372372
```
373373

374-
**Skip files that are either read-only or archived**
374+
**Skip files that are either read-only or archived**:
375375

376376
To use an OR logic, run the same property multiple times. For example:
377377

exchange/docs-conceptual/connect-exo-powershell-managed-identity.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ The first command in the PowerShell runbook must be the `Connect-ExchangeOnline.
6868
Connect-ExchangeOnline -ManagedIdentity -Organization contoso.onmicrosoft.com
6969
```
7070

71-
After that, as a test, you can start with as simple, low-impact command in the runbook before moving on to more complex commands or scripts. For example:
71+
After that, as a test, you can start with as simple, low risk command in the runbook before moving on to more complex commands or scripts. For example:
7272

7373
```powershell
7474
Get-AcceptedDomain | Format-Table Name
@@ -118,7 +118,7 @@ Connect-ExchangeOnline -ManagedIdentity -Organization contoso.onmicrosoft.com -M
118118

119119
You get the ManagedIdentityAccount value from [Step 3: Store the user-assigned managed identity in a variable](#step-3-store-the-user-assigned-managed-identity-in-a-variable).
120120

121-
After that, as a test, you can start with as simple, low-impact command in the runbook before moving on to more complex commands or scripts. For example:
121+
After that, as a test, you can start with as simple, low risk command in the runbook before moving on to more complex commands or scripts. For example:
122122

123123
```powershell
124124
Get-AcceptedDomain | Format-Table Name
@@ -285,7 +285,7 @@ To verify that the module imported successfully, run the following command:
285285
Get-AzAutomationModule -ResourceGroupName ContosoRG -AutomationAccountName ContosoAzAuto1 -Name ExchangeOnlineManagement
286286
```
287287

288-
During the import, the ProvisioningState property will have the value Creating. When the module import is complete, the value will change to Succeeded.
288+
During the import, the ProvisioningState property has the value Creating. When the module import is complete, the value changes to Succeeded.
289289

290290
For detailed syntax and parameter information, see [New-AzAutomationModule](/powershell/module/az.automation/new-azautomationmodule).
291291

exchange/docs-conceptual/connect-to-exo-powershell-c-sharp.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ void ParallelConnectionsToExchangeOnline()
207207

208208
// Set the ThreadOptions to reuse the same threads for the runspaces so that
209209
210-
// the Exchange Online cmdlets will be available after running Connect-ExchangeOnline in each runspace.
210+
// the Exchange Online cmdlets are available after running Connect-ExchangeOnline in each runspace.
211211
212212
pool.ThreadOptions = PSThreadOptions.ReuseThread;
213213

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

Lines changed: 72 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: About the Exchange Online PowerShell V3 module
33
ms.author: chrisda
44
author: chrisda
55
manager: deniseb
6-
ms.date: 07/31/2025
6+
ms.date: 08/08/2025
77
ms.audience: Admin
88
audience: Admin
99
ms.topic: article
@@ -269,28 +269,79 @@ Now you can do the [regular PowerShell prerequisites](#prerequisites-for-the-exc
269269

270270
- **Windows PowerShell 5.1**:
271271
- All versions of the module are supported.
272-
- Version 2.0.5 (May 2021) or later versions of the module require the Microsoft .NET Framework 4.7.2 or later to connect. Otherwise, you get a `System.Runtime.InteropServices.OSPlatform` error. For more information about versions of Windows that support the .NET Framework 4.7.2, see [this article](/dotnet/framework/migration-guide/versions-and-dependencies#net-framework-472).
273-
274-
> [!TIP]
275-
> Current versions of Windows include the required versions of .NET and/or the .NET Framework, so you don't need to install .NET or the .NET Framework to use the module in Windows PowerShell 5.1.
272+
- Current versions of Windows include the required versions of the .NET Framework, so you don't need to install the .NET Framework to use the module in Windows PowerShell 5.1.
276273

277274
- **PowerShell 7**:
278-
- Module versions 3.5.1 (July 2024) or later require PowerShell 7 version 7.4.0 (November 2023) or later. Earlier versions of PowerShell 7 might encounter compatibility issues due to missing .NET 8.0 assemblies (v3.5.1 is built on .NET 8.0).
279-
- Module versions 2.0.4 (February 2021) to 3.5.0 (May 2024) are supported in PowerShell 7 version 7.0.3 (July 2020) or later.
275+
- Module versions 3.5.0 (May 2024) or later require PowerShell 7.4.0 (November 2023) or later due to .NET 8.0 assembly dependencies. Earlier versions of PowerShell 7 might encounter compatibility issues (PowerShell 7.3.6 is more compatible than 7.3.7).
276+
- Module versions 3.0.0 (September 2022) to 3.4.0 (October 2023) require PowerShell 7.2.0 (November 2021) or later due to .NET 6.0 assembly dependencies in REST API cmdlets and connections.
277+
- Support for the module in PowerShell 7 started with version 2.0.4 (February 2021) in PowerShell 7.0.3 (July 2020).
278+
279+
Specific module version support in Windows depends on Windows PowerShell support and .NET Framework and/or .NET support as described in the following list:
280+
281+
> [!TIP]
282+
> As stated previously, only REST API connections are supported in Exchange Online PowerShell and Security & Compliance PowerShell:
283+
>
284+
> - Version 2.0.4 of the module (February 2021) supports the REST API only for the [nine exclusive **Get-EXO\*** cmdlets](#cmdlets-in-the-exchange-online-powershell-module).
285+
> - Version 2.0.5 of the module (May 2021) offers partial support for REST API cmdlets only in Exchange Online PowerShell.
286+
> - Version 3.0.0 (September 2022) is the first version of the module that fully supports REST API cmdlets in Exchange Online PowerShell.
287+
> - Version 3.2.0 (June 2023) is the first version of the module that fully supports REST API cmdlets in Security & Compliance PowerShell.
288+
289+
- **Windows 11**:
290+
291+
|Module version|PowerShell version|.NET requirement|
292+
|---|---|---|
293+
|2.0.5 or later|5.1|.NET Framework 4.7.2 (4.8.x is included, so you don't need to install the .NET Framework)|
294+
|3.5.0 or later|7.4.0 or later|.NET 8.0<br/>Included in 24H2 or later.|
295+
|3.0.0 to 3.4.0|7.2.0 to 7.3.7 (or later)|.NET 6.0 (7.2.x)<br/>.NET 7.0 (7.3.x)|
296+
297+
PowerShell 7.2.0 is the earliest supported version in Windows 11.
298+
299+
- **Windows Server 2022**:
300+
301+
|Module version|PowerShell version|.NET requirement|
302+
|---|---|---|
303+
|2.0.5 or later|5.1|.NET Framework 4.7.2 (4.8 is included, so you don't need to install the .NET Framework)|
304+
|3.5.0 or later|7.4.0 or later|.NET 8.0|
305+
|3.0.0 to 3.4.0|7.2.0 to 7.3.7 (or later)|.NET 6.0 (7.2.x)<br/>.NET 7.0 (7.3.x)|
280306

281-
Windows PowerShell requirements and module support **in older versions of Windows** are described in the following list:
307+
PowerShell 7.2.0 (.NET 6.0) is the earliest supported version in Windows Server 2022.
282308

283-
- Windows 10¹
284-
- Windows 8.1² ³
285-
- Windows Server 2012 or Windows Server 2012 R2² ³
286-
- Windows 7 Service Pack 1 (SP1)² ⁴ ⁵
287-
- Windows Server 2008 R2 SP1² ⁴ ⁵
309+
- **Windows 10**:
288310

289-
¹ Windows 10 Anniversary Update (version 1607 from August 2016) is the earliest version of Windows 10 that's reliably compatible with the .NET Framework 4.7.2 (v2.0.5 or later versions of the module in Windows PowerShell 5.1).<br/>
290-
² Support for this version of Windows is over. This version of Windows is supported only in Azure virtual machines.<br/>
291-
³ PowerShell 7 on this version of Windows requires a compatible version of .NET Core or .NET runtime and the [Windows 10 Universal C Runtime (CRT)](https://support.microsoft.com/topic/c0514201-7fe6-95a3-b0a5-287930f3560c). The last officially supported version of PowerShell 7 on this version of Windows is 7.2 (7.2.19 from August 2024), which means the last supported version of the module in PowerShell 7 is v3.5.0 (May 2024).<br/>
292-
⁴ The latest version of the module supported on this version of Windows is v2.0.3 (September 2020).<br/>
293-
⁵ Windows PowerShell 5.1 on this version of Windows requires the .NET Framework 4.5 or later and the Windows Management Framework 5.1. For more information, see [Windows Management Framework 5.1](https://aka.ms/wmf5download).
311+
|Module version|PowerShell version|Supported Windows version|.NET requirement|
312+
|---|---|---|---|
313+
|2.0.5 or later|5.1|Anniversary Update (version 1607; August 2016) or later|.NET Framework 4.7.2<br/>April 2018 Update (version 1803) or later includes the .NET Framework 4.7.2, so you don't need to download it.|
314+
|3.5.0 or later|7.4.0 or later|October 2018 Update (version 1809) or later |.NET 8.0|
315+
|3.0.0 to 3.4.0|7.2.0 to 7.3.7 (or later)|October 2018 Update (version 1809) or later|.NET 6.0 (7.2.x)<br/>.NET 7.0 (7.3.x)|
316+
|2.0.4 and 2.0.5|7.0.3 to 7.1.5 (or later)|Anniversary Update (version 1607; August 2016) or later|.NET Core 3.1 (7.0.x)<br/>.NET 5.0 (7.1.x)|
317+
318+
- **Windows Server 2016** and **Windows Server 2019**:
319+
320+
|Module version|PowerShell version|.NET requirement|
321+
|---|---|---|
322+
|2.0.5 or later|5.1|.NET Framework 4.7.2<br/>Included in Windows Server 2019.|
323+
|3.5.0 or later|7.4.0 or later|.NET 8.0|
324+
|3.0.0 to 3.4.0|7.2.0 to 7.3.7 (or later)|.NET 6.0 (7.2.x)<br/>.NET 7.0 (7.3.x)|
325+
|2.0.4 and 2.0.5|7.0.3 to 7.1.5 (or later)|.NET Core 3.1 (7.0.x)<br/>.NET 5.0 (7.1.x)|
326+
327+
- **Windows 8.1**, **Windows Server 2012**, and **Windows Server 2012 R2**:
328+
329+
|Module version|PowerShell version|.NET requirement|
330+
|---|---|---|
331+
|2.0.5 or later|5.1|.NET Framework 4.7.2|
332+
|3.0.0 to 3.4.0|7.2.x|.NET 6.0|
333+
|2.0.4 and 2.0.5|7.0.3 to 7.1.5 (or later)|.NET Core 3.1 (7.0.x)<br/>.NET 5.0 (7.1.x)|
334+
335+
PowerShell 7.2.22 (.NET 6.0) is the latest supported version in Windows 8.1, Windows Server 2012, and Windows Server 2012 R2.
336+
337+
- **Windows 7.1 SP1** and **Windows Server 2008 R2 SP1**:
338+
339+
|Module version|PowerShell version|.NET requirement|
340+
|---|---|---|
341+
|2.0.3|5.1|.NET Framework 4.7.1|
342+
343+
> [!NOTE]
344+
> Although you can install this version of the module, you can't connect to Exchange Online PowerShell, because version 7.0.3 lacks support for REST API connections.
294345
295346
### Prerequisites for the Exchange Online PowerShell module
296347

@@ -317,6 +368,8 @@ For more information about execution policies, see [About Execution Policies](/p
317368

318369
As of October 2023, REST API connections replaced basic authentication (remote PowerShell) connections in [Exchange Online PowerShell](https://techcommunity.microsoft.com/blog/exchange/deprecation-of-remote-powershell-in-exchange-online-%e2%80%93-re-enabling-or-extending-r/3779692) and [Security & Compliance PowerShell](https://techcommunity.microsoft.com/blog/exchange/deprecation-of-remote-powershell-rps-protocol-in-security-and-compliance-powersh/3815432). REST API connections don't require Basic authentication in WinRM.
319370

371+
Version 3.2.0 (June 2023) and later version of the module fully support REST API cmdlets in Exchange Online PowerShell and Security & Compliance PowerShell.
372+
320373
<a name='powershellget-for-rest-api-connections-in-windows'></a>
321374

322375
### PowerShellGet required in Windows
@@ -591,7 +644,7 @@ Unless otherwise noted, the current release of the Exchange Online PowerShell mo
591644
- **Get-VivaModuleFeature** now returns information about ParentFeature, ChildFeature, and PolicyModes. These values represent parent and child features of a Viva app feature along with available enablement modes for future policies.
592645
- New parameters _IsUserOptedInByDefault_ on the **Add-VivaModuleFeaturePolicy** and **Update-VivaModuleFeaturePolicy** cmdlets and the corresponding property value in all **\*-VivaModuleFeaturePolicy** cmdlets. The value indicates if users are opted in or out by the policy, as long as the user doesn't set a preference.
593646

594-
You can use this parameter to keep the feature enabled in your organization while opting out the impacted users by default, effectively soft disabling the feature for those users.
647+
You can use this parameter to keep the feature enabled in your organization while opting out the affected users by default, effectively soft disabling the feature for those users.
595648

596649
- Deprecated the **Get-VivaFeatureCategory** cmdlet, all category-related parameters, and return values (_CategoryId_, _IsCategoryEnabled_).
597650

0 commit comments

Comments
 (0)