Skip to content

Commit c901d6c

Browse files
committed
Merge branch 'master' into CAPR-chrisda
2 parents 001f9d5 + 67c67ad commit c901d6c

File tree

2,158 files changed

+5022
-17877
lines changed

Some content is hidden

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

2,158 files changed

+5022
-17877
lines changed

README.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,6 @@ This brief video also covers how to contribute:
3737

3838
In this example, we'll add a link to the **Related Links** section of a topic. To add the link, scroll down to the **Related Links** section and add the link in the correct format.
3939

40-
![Image of Edit button on Github](images/add_related_link.png)
41-
4240
**Notes**:
4341

4442
- Files in GitHub are written and edited using Markdown language. For help on using Markdown, see [Mastering Markdown](https://guides.github.com/features/mastering-markdown/).

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

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,18 @@ You need to assign the API permission `Exchange.ManageAsApp` so the application
145145

146146
Create a self-signed x.509 certificate using one of the following methods:
147147

148-
- (Recommended) Use the [New-SelfSignedCertificate](https://docs.microsoft.com/powershell/module/pkiclient/new-selfsignedcertificate) and [Export-PfxCertificate](https://docs.microsoft.com/powershell/module/pkiclient/export-pfxcertificate) cmdlets to request a self-signed certificate and export it to PFX.
148+
- (Recommended) Use the [New-SelfSignedCertificate](https://docs.microsoft.com/powershell/module/pkiclient/new-selfsignedcertificate), [Export-Certificate](https://docs.microsoft.com/powershell/module/pkiclient/export-certificate) and [Export-PfxCertificate](https://docs.microsoft.com/powershell/module/pkiclient/export-pfxcertificate) cmdlets to request a self-signed certificate and export it to `.cer` and `.pfx`.
149+
150+
```powershell
151+
# Create certificate
152+
$mycert = New-SelfSignedCertificate -DnsName "example.com" -CertStoreLocation "cert:\LocalMachine\My" -NotAfter (Get-Date).AddYears(1)
153+
154+
# Export certificate to .pfx file
155+
$mycert | Export-PfxCertificate -FilePath mycert.pfx -Password $(ConvertTo-SecureString -String "1234" -Force -AsPlainText)
156+
157+
# Export certificate to .cer file
158+
$mycert | Export-Certificate -FilePath mycert.cer
159+
```
149160

150161
- Use the [Create-SelfSignedCertificate script](https://github.com/SharePoint/PnP-Partner-Pack/blob/master/scripts/Create-SelfSignedCertificate.ps1). Note that this script generates SHA1 certificates.
151162

@@ -155,7 +166,7 @@ Create a self-signed x.509 certificate using one of the following methods:
155166

156167
## Step 4: Attach the certificate to the Azure AD application
157168

158-
After you register the certificate with your application, you can use the public key (.pfx file) or the thumbprint for authentication.
169+
After you register the certificate with your application, you can use the public key (`.pfx` file) or the thumbprint for authentication.
159170

160171
1. In the Azure AD portal under **Manage Azure Active Directory**, click **View**.
161172

@@ -169,7 +180,7 @@ After you register the certificate with your application, you can use the public
169180

170181
![Click Upload certificate](media/app-only-auth-upload-cert.png)
171182

172-
6. In the dialog that appears, browse to the self-signed certificate you created in the previous Step, and then click **Add**.
183+
6. In the dialog that appears, browse to the self-signed certificate (`.cer` file) you created in the previous step, and then click **Add**.
173184

174185
## Step 5: Assign a role to the application
175186

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,13 @@ If your account uses multi-factor authentication, use the steps in this section.
4949
2. The command that you need to run uses the following syntax:
5050

5151
```powershell
52-
Connect-ExchangeOnline -UserPrincipalName <UPN> -ShowProgress $true [-ExchangeEnvironmentName <Value>] [-DelegatedOrganization <String>]
52+
Connect-ExchangeOnline -UserPrincipalName <UPN> -ShowProgress $true [-ExchangeEnvironmentName <Value>] [-DelegatedOrganization <String>] [-PSSessionOption $ProxyOptions]
5353
```
5454

5555
- _\<UPN\>_ is your account in user principal name format (for example, `[email protected]`).
5656
- When you use the _ExchangeEnvironmentName_ parameter, you don't need use the _ConnectionUri_ or _AzureADAuthorizationEndPointUrl_ parameters. For more information, see the parameter descriptions in [Connect-ExchangeOnline](https://docs.microsoft.com/powershell/module/exchange/connect-exchangeonline).
5757
- The _DelegatedOrganization_ parameter specifies the customer organization that you want to manage as an authorized Microsoft Partner. For more information, see [Partners](https://docs.microsoft.com/office365/servicedescriptions/office-365-platform-service-description/partners).
58+
- If you're behind a proxy server, run this command first: `$ProxyOptions = New-PSSessionOption -ProxyAccessType <Value>`, where \<Value\> is `IEConfig`, `WinHttpConfig`, or `AutoDetect`. Then, use the _PSSessionOption_ parameter with the value `$ProxyOptions`. For more information, see [New-PSSessionOption](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/new-pssessionoption).
5859

5960
**This example connects to Exchange Online PowerShell in a Microsoft 365 or Microsoft 365 GCC organization**:
6061

@@ -118,11 +119,12 @@ If your account doesn't use multi-factor authentication, use the steps in this s
118119
3. The command that you need to run uses the following syntax:
119120

120121
```powershell
121-
Connect-ExchangeOnline -Credential $UserCredential -ShowProgress $true [-ExchangeEnvironmentName <Value>] [-DelegatedOrganization <String>]
122+
Connect-ExchangeOnline -Credential $UserCredential -ShowProgress $true [-ExchangeEnvironmentName <Value>] [-DelegatedOrganization <String>] [-PSSessionOption $ProxyOptions]
122123
```
123124

124125
- When you use the _ExchangeEnvironmentName_ parameter, you don't need use the _ConnectionUri_ or _AzureADAuthorizationEndPointUrl_ parameters. For more information, see the parameter descriptions in [Connect-ExchangeOnline](https://docs.microsoft.com/powershell/module/exchange/connect-exchangeonline).
125126
- The _DelegatedOrganization_ parameter specifies the customer organization that you want to manage as an authorized Microsoft Partner. For more information, see [Partners](https://docs.microsoft.com/office365/servicedescriptions/office-365-platform-service-description/partners).
127+
- If you're behind a proxy server, run this command first: `$ProxyOptions = New-PSSessionOption -ProxyAccessType <Value>`, where \<Value\> is `IEConfig`, `WinHttpConfig`, or `AutoDetect`. Then, use the _PSSessionOption_ parameter with the value `$ProxyOptions`. For more information, see [New-PSSessionOption](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/new-pssessionoption).
126128

127129
**Connect to Exchange Online PowerShell in a Microsoft 365 or Microsoft 365 GCC organization**:
128130

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,12 @@ If your account uses multi-factor authentication, use the steps in this section.
4949
2. The command that you need to run uses the following syntax:
5050

5151
```powershell
52-
Connect-IPPSSession -UserPrincipalName <UPN> [-ConnectionUri <URL>] [-AzureADAuthorizationEndPointUri <URL>]
52+
Connect-IPPSSession -UserPrincipalName <UPN> [-ConnectionUri <URL>] [-AzureADAuthorizationEndPointUri <URL>] [-PSSessionOption $ProxyOptions]
5353
```
5454

5555
- _\<UPN\>_ is your account in user principal name format (for example, `[email protected]`).
5656
- The required _ConnectionUri_ and _AzureADAuthorizationEndPointUrl_ values depend on the nature of your Microsoft 365 organization. For more information, see the parameter descriptions in [Connect-IPPSSession](https://docs.microsoft.com/powershell/module/exchange/connect-ippssession).
57+
- If you're behind a proxy server, run this command first: `$ProxyOptions = New-PSSessionOption -ProxyAccessType <Value>`, where \<Value\> is `IEConfig`, `WinHttpConfig`, or `AutoDetect`. Then, use the _PSSessionOption_ parameter with the value `$ProxyOptions`. For more information, see [New-PSSessionOption](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/new-pssessionoption).
5758

5859
**This example connects to Exchange Online Protection PowerShell in a Microsoft 365 organization**:
5960

@@ -99,10 +100,11 @@ If your account doesn't use multi-factor authentication, use the steps in this s
99100
3. The command that you need to run uses the following syntax:
100101

101102
```powershell
102-
Connect-IPPSSession -Credential $UserCredential -ConnectionUri <URL>
103+
Connect-IPPSSession -Credential $UserCredential -ConnectionUri <URL> [-PSSessionOption $ProxyOptions]
103104
```
104105

105-
The required _ConnectionUri_ value depends on the nature of your Microsoft 365 organization. For more information, see the parameter description in [Connect-IPPSSession](https://docs.microsoft.com/powershell/module/exchange/connect-ippssession).
106+
- The required _ConnectionUri_ value depends on the nature of your Microsoft 365 organization. For more information, see the parameter description in [Connect-IPPSSession](https://docs.microsoft.com/powershell/module/exchange/connect-ippssession).
107+
- If you're behind a proxy server, run this command first: `$ProxyOptions = New-PSSessionOption -ProxyAccessType <Value>`, where \<Value\> is `IEConfig`, `WinHttpConfig`, or `AutoDetect`. Then, use the _PSSessionOption_ parameter with the value `$ProxyOptions`. For more information, see [New-PSSessionOption](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/new-pssessionoption).
106108

107109
**This example connects to Exchange Online Protection PowerShell in a Microsoft 365 organization**:
108110

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,13 @@ If your account uses multi-factor authentication, use the steps in this section.
4444
2. The command that you need to run uses the following syntax:
4545

4646
```powershell
47-
Connect-IPPSSession -UserPrincipalName <UPN> [-ConnectionUri <URL>]
47+
Connect-IPPSSession -UserPrincipalName <UPN> [-ConnectionUri <URL>] [-PSSessionOption $ProxyOptions]
4848
```
4949

5050
- _\<UPN\>_ is your account in user principal name format (for example, `[email protected]`).
5151
- The required _ConnectionUri_ value depends on the nature of your Microsoft 365 organization. For more information, see the parameter description in [Connect-IPPSSession](https://docs.microsoft.com/powershell/module/exchange/connect-ippssession).
5252
- When you use the _UserPrincipalName_ parameter, you don't need to use the _AzureADAuthorizationEndpointUri_ parameter in environments that would otherwise require it.
53+
- If you're behind a proxy server, run this command first: `$ProxyOptions = New-PSSessionOption -ProxyAccessType <Value>`, where \<Value\> is `IEConfig`, `WinHttpConfig`, or `AutoDetect`. Then, use the _PSSessionOption_ parameter with the value `$ProxyOptions`. For more information, see [New-PSSessionOption](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/new-pssessionoption).
5354

5455
**This example connects to Security & Compliance Center PowerShell in a Microsoft 365 or Microsoft 365 GCC organization**.
5556

@@ -107,10 +108,11 @@ If your account doesn't use multi-factor authentication, use the steps in this s
107108
3. The command that you need to run uses the following syntax:
108109

109110
```powershell
110-
Connect-IPPSSession -Credential $UserCredential [-ConnectionUri <URL>] [-AzureADAuthorizationEndpointUri <URL>]
111+
Connect-IPPSSession -Credential $UserCredential [-ConnectionUri <URL>] [-AzureADAuthorizationEndpointUri <URL>] [-PSSessionOption $ProxyOptions]
111112
```
112113

113-
The required _ConnectionUri_ and _AzureADAuthorizationEndPointUrl_ values depend on the nature of your Microsoft 365 organization. For more information, see the parameter descriptions in [Connect-IPPSSession](https://docs.microsoft.com/powershell/module/exchange/connect-ippssession).
114+
- The required _ConnectionUri_ and _AzureADAuthorizationEndPointUrl_ values depend on the nature of your Microsoft 365 organization. For more information, see the parameter descriptions in [Connect-IPPSSession](https://docs.microsoft.com/powershell/module/exchange/connect-ippssession).
115+
- If you're behind a proxy server, run this command first: `$ProxyOptions = New-PSSessionOption -ProxyAccessType <Value>`, where \<Value\> is `IEConfig`, `WinHttpConfig`, or `AutoDetect`. Then, use the _PSSessionOption_ parameter with the value `$ProxyOptions`. For more information, see [New-PSSessionOption](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/new-pssessionoption).
114116

115117
**This example connects to Security & Compliance Center PowerShell in a Microsoft 365 or Microsoft 365 GCC organization**.
116118

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

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ The module use modern authentication for all cmdlets. You can't use Basic authen
4646

4747
The Exchange Online cmdlets in the EXO V2 module are meant to replace their older, less efficient equivalents, but the equivalent cmdlets are still available (after you connect).
4848

49-
The Exchange Online PowerShell cmdlets that are only available in the EXO V2 module are listed in the following table:
49+
The improved Exchange Online PowerShell cmdlets that are only available in the EXO V2 module are listed in the following table:
5050

5151
****
5252

@@ -61,10 +61,6 @@ The Exchange Online PowerShell cmdlets that are only available in the EXO V2 mod
6161
|[Get-EXOMailboxFolderStatistics](https://docs.microsoft.com/powershell/module/exchange/get-exomailboxfolderstatistics)|[Get-MailboxFolderStatistics](https://docs.microsoft.com/powershell/module/exchange/get-mailboxfolderstatistics)|
6262
|[Get-EXOMailboxFolderPermission](https://docs.microsoft.com/powershell/module/exchange/get-exomailboxfolderpermission)|[Get-MailboxFolderPermission](https://docs.microsoft.com/powershell/module/exchange/get-mailboxfolderpermission)|
6363
|[Get-EXOMobileDeviceStatistics](https://docs.microsoft.com/powershell/module/exchange/get-exomobiledevicestatistics)|[Get-MobileDeviceStatistics](https://docs.microsoft.com/powershell/module/exchange/get-mobiledevicestatistics)|
64-
|[Disconnect-ExchangeOnline](https://docs.microsoft.com/powershell/module/exchange/disconnect-exchangeonline)|[Remove-PSSession](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/remove-pssession)|
65-
|[Connect-IPPSSession](https://docs.microsoft.com/powershell/module/exchange/connect-ippssession)|[Connect-IPPSSession](mfa-connect-to-scc-powershell.md)|
66-
|[Get-UserBriefingConfig](https://docs.microsoft.com/powershell/module/exchange/get-userbriefingconfig)|n/a|
67-
|[Set-UserBriefingConfig](https://docs.microsoft.com/powershell/module/exchange/set-userbriefingconfig)|n/a|
6864
|
6965

7066
The connection-related cmdlets that are available in the EXO V2 module are listed in the following table:
@@ -78,6 +74,18 @@ The connection-related cmdlets that are available in the EXO V2 module are liste
7874
|[Disconnect-ExchangeOnline](https://docs.microsoft.com/powershell/module/exchange/disconnect-exchangeonline)|[Remove-PSSession](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/remove-pssession)|
7975
|
8076

77+
Miscellaneous Exchange Online cmdlets that happen to be in the EXO V2 module are listed in the following table:
78+
79+
****
80+
81+
|EXO V2 module cmdlet|Comments|
82+
|---|---|
83+
|[Get-MyAnalyticsFeatureConfig](https://docs.microsoft.com/powershell/module/exchange/get-myanalyticsfeatureconfig)|Available in the version 2.0.4-Preview3 version of the module.|
84+
|[Set-MyAnalyticsFeatureConfig](https://docs.microsoft.com/powershell/module/exchange/set-myanalyticsfeatureconfig)|Available in the version 2.0.4-Preview3 version of the module.|
85+
|[Get-UserBriefingConfig](https://docs.microsoft.com/powershell/module/exchange/get-userbriefingconfig)|This cmdlet is being replaced by **Get-MyAnalyticsFeatureConfig**.|
86+
|[Set-UserBriefingConfig](https://docs.microsoft.com/powershell/module/exchange/set-userbriefingconfig)|This cmdlet is being replaced by **Set-MyAnalyticsFeatureConfig**|
87+
|
88+
8189
## Install and maintain the EXO V2 module
8290

8391
You can download the EXO V2 module from the PowerShell gallery at <https://www.powershellgallery.com/packages/ExchangeOnlineManagement/>.

exchange/exchange-ps/exchange/Add-ADPermission.md

Lines changed: 2 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -181,41 +181,23 @@ Accept wildcard characters: False
181181
The AccessRights parameter specifies the rights needed to perform the operation. Valid values include:
182182
183183
- AccessSystemSecurity
184-
185184
- CreateChild
186-
187185
- DeleteChild
188-
189186
- ListChildren
190-
191187
- Self
192-
193188
- ReadProperty
194-
195189
- WriteProperty
196-
197190
- DeleteTree
198-
199191
- ListObject
200-
201192
- ExtendedRight
202-
203193
- Delete
204-
205194
- ReadControl
206-
207195
- GenericExecute
208-
209196
- GenericWrite
210-
211197
- GenericRead
212-
213198
- WriteDacl
214-
215199
- WriteOwner
216-
217200
- GenericAll
218-
219201
- Synchronize
220202
221203
```yaml
@@ -252,9 +234,8 @@ Accept wildcard characters: False
252234
### -Confirm
253235
The Confirm switch specifies whether to show or hide the confirmation prompt. How this switch affects the cmdlet depends on if the cmdlet requires confirmation before proceeding.
254236
255-
- Destructive cmdlets (for example, Remove-* cmdlets) have a built-in pause that forces you to acknowledge the command before proceeding. For these cmdlets, you can skip the confirmation prompt by using this exact syntax: -Confirm:$false.
256-
257-
- Most other cmdlets (for example, New-* and Set-* cmdlets) don't have a built-in pause. For these cmdlets, specifying the Confirm switch without a value introduces a pause that forces you acknowledge the command before proceeding.
237+
- Destructive cmdlets (for example, Remove-\* cmdlets) have a built-in pause that forces you to acknowledge the command before proceeding. For these cmdlets, you can skip the confirmation prompt by using this exact syntax: `-Confirm:$false`.
238+
- Most other cmdlets (for example, New-\* and Set-\* cmdlets) don't have a built-in pause. For these cmdlets, specifying the Confirm switch without a value introduces a pause that forces you acknowledge the command before proceeding.
258239

259240
```yaml
260241
Type: SwitchParameter

exchange/exchange-ps/exchange/Add-AttachmentFilterEntry.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ This example adds an attachment filter entry based on the MIME content type imag
5454
The Name parameter specifies the files that you want to block. Valid values are:
5555

5656
- A exact file name (for example, BadFile.exe) or file name extension (for example, \*.exe). You need to use the value Filename for the Type parameter.
57-
5857
- A valid MIME content type (for example, application/javascript or text/scriplet). You need to use the value ContentType for the Type parameter.
5958

6059
```yaml
@@ -74,7 +73,6 @@ Accept wildcard characters: False
7473
The Type parameter specifies what type of attachment the attachment filter entry blocks. Valid values are:
7574
7675
- ContentType: This value matches the attachment filter entry against the MIME content type that's specified in the Name parameter.
77-
7876
- FileName: This value matches the attachment filter entry against the simple file name that's specified in the Name parameter.
7977
8078
```yaml
@@ -93,8 +91,7 @@ Accept wildcard characters: False
9391
### -Confirm
9492
The Confirm switch specifies whether to show or hide the confirmation prompt. How this switch affects the cmdlet depends on if the cmdlet requires confirmation before proceeding.
9593
96-
- Destructive cmdlets (for example, Remove-\* cmdlets) have a built-in pause that forces you to acknowledge the command before proceeding. For these cmdlets, you can skip the confirmation prompt by using this exact syntax: -Confirm:$false.
97-
94+
- Destructive cmdlets (for example, Remove-\* cmdlets) have a built-in pause that forces you to acknowledge the command before proceeding. For these cmdlets, you can skip the confirmation prompt by using this exact syntax: `-Confirm:$false`.
9895
- Most other cmdlets (for example, New-\* and Set-\* cmdlets) don't have a built-in pause. For these cmdlets, specifying the Confirm switch without a value introduces a pause that forces you acknowledge the command before proceeding.
9996

10097
```yaml

0 commit comments

Comments
 (0)