diff --git a/CHANGELOG.md b/CHANGELOG.md index 54ac60a710..473195f404 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Change log for Microsoft365DSC +# 1.21.1117.2 + +* MISC + * Fixes old Intune Graph Request cmdlet name; + # 1.21.1117.1 * EXOTransportRule diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppProtectionPolicyiOS/MSFT_IntuneAppProtectionPolicyiOS.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppProtectionPolicyiOS/MSFT_IntuneAppProtectionPolicyiOS.psm1 index 34ca839469..5a9f7a7429 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppProtectionPolicyiOS/MSFT_IntuneAppProtectionPolicyiOS.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppProtectionPolicyiOS/MSFT_IntuneAppProtectionPolicyiOS.psm1 @@ -721,7 +721,7 @@ function Get-M365DSCIntuneAppProtectionPolicyiOS try { $Url = "https://graph.microsoft.com/beta/deviceAppManagement/iosManagedAppProtections('$PolicyId')/`?expand=apps,assignments" - $response = Invoke-MSGraphRequest -HttpMethod Get ` + $response = Invoke-MgGraphRequest -HttpMethod Get ` -Url $Url return $response } @@ -915,7 +915,7 @@ function New-M365DSCIntuneAppProtectionPolicyiOS { $Url = 'https://graph.microsoft.com/beta/deviceAppManagement/managedAppPolicies' Write-Verbose -Message "Creating new iOS App Protection policy with JSON payload: `r`n$JSONContent" - Invoke-MSGraphRequest -HttpMethod POST ` + Invoke-MgGraphRequest -HttpMethod POST ` -Url $Url ` -Content $JSONContent ` -Headers @{"Content-Type" = "application/json" } | Out-Null @@ -946,7 +946,7 @@ function Set-M365DSCIntuneAppProtectionPolicyiOS { $Url = "https://graph.microsoft.com/beta/deviceAppManagement/iosManagedAppProtections('$PolicyId')/" Write-Verbose -Message "Creating new iOS App Protection policy with JSON payload: `r`n$JSONContent" - Invoke-MSGraphRequest -HttpMethod PATCH ` + Invoke-MgGraphRequest -HttpMethod PATCH ` -Url $Url ` -Content $JSONContent ` -Headers @{"Content-Type" = "application/json" } | Out-Null @@ -977,7 +977,7 @@ function Set-M365DSCIntuneAppProtectionPolicyiOSApps { $Url = "https://graph.microsoft.com/beta/deviceAppManagement/managedAppPolicies/$PolicyId/targetApps" Write-Verbose -Message "Updating Apps for iOS App Protection policy with JSON payload: `r`n$JSONContent" - Invoke-MSGraphRequest -HttpMethod POST ` + Invoke-MgGraphRequest -HttpMethod POST ` -Url $Url ` -Content $JSONContent ` -Headers @{"Content-Type" = "application/json" } | Out-Null @@ -1008,7 +1008,7 @@ function Set-M365DSCIntuneAppProtectionPolicyiOSAssignment { $Url = "https://graph.microsoft.com/beta/deviceAppManagement/iosManagedAppProtections('$PolicyId')/assign" Write-Verbose -Message "Group Assignment for iOS App Protection policy with JSON payload: `r`n$JSONContent" - Invoke-MSGraphRequest -HttpMethod POST ` + Invoke-MgGraphRequest -HttpMethod POST ` -Url $Url ` -Content $JSONContent ` -Headers @{"Content-Type" = "application/json" } | Out-Null diff --git a/Modules/Microsoft365DSC/Microsoft365DSC.psd1 b/Modules/Microsoft365DSC/Microsoft365DSC.psd1 index 5bf4d82185..efbfca7468 100644 --- a/Modules/Microsoft365DSC/Microsoft365DSC.psd1 +++ b/Modules/Microsoft365DSC/Microsoft365DSC.psd1 @@ -3,7 +3,7 @@ # # Generated by: Microsoft Corporation # -# Generated on: 2021-11-17 +# Generated on: 2021-11-18 @{ @@ -11,7 +11,7 @@ # RootModule = '' # Version number of this module. - ModuleVersion = '1.21.1117.1' + ModuleVersion = '1.21.1117.2' # Supported PSEditions # CompatiblePSEditions = @() @@ -203,14 +203,17 @@ IconUri = 'https://github.com/microsoft/Microsoft365DSC/blob/Dev/Modules/Microsoft365DSC/Dependencies/Images/Logo.png?raw=true' # ReleaseNotes of this module - ReleaseNotes = "* EXOTransportRule + ReleaseNotes = " + * EXOTransportRule * Fixed issues with invalid State property and missing Enabled one; ISSUE #1554; * IntuneDeviceCompliancePolicyAndroidDeviceOwner * Initial release; * DEPENDENCIES * Updated DSCParser to version 1.3.0.2; - * Updated MSCloudLoginAssistant to version 1.0.78;" + * Updated MSCloudLoginAssistant to version 1.0.78; + * MISC + * Fixes old Intune Graph Request cmdlet name;" # Flag to indicate whether the module requires explicit user acceptance for install/update # RequireLicenseAcceptance = $false diff --git a/Tests/Unit/Stubs/Microsoft365.psm1 b/Tests/Unit/Stubs/Microsoft365.psm1 index 200e05e41e..ece3d670e1 100644 --- a/Tests/Unit/Stubs/Microsoft365.psm1 +++ b/Tests/Unit/Stubs/Microsoft365.psm1 @@ -9535,17 +9535,17 @@ function Get-Organization $organizationId ) } -function Invoke-MSGraphRequest +function Invoke-MgGraphRequest { [CmdletBinding()] param( [Parameter()] [System.String] - $HttpMethod, + $Method, [Parameter()] [System.Object] - $Content, + $Body, [Parameter()] [System.Object] @@ -9553,7 +9553,7 @@ function Invoke-MSGraphRequest [Parameter()] [System.String] - $Url + $Uri ) } function New-Organization diff --git a/docs/docs/images/Assess.png b/docs/docs/Images/Assess.png similarity index 100% rename from docs/docs/images/Assess.png rename to docs/docs/Images/Assess.png diff --git a/docs/docs/images/AssessFlowBlueprint.png b/docs/docs/Images/AssessFlowBlueprint.png similarity index 100% rename from docs/docs/images/AssessFlowBlueprint.png rename to docs/docs/Images/AssessFlowBlueprint.png diff --git a/docs/docs/images/AssessFlowTenant.png b/docs/docs/Images/AssessFlowTenant.png similarity index 100% rename from docs/docs/images/AssessFlowTenant.png rename to docs/docs/Images/AssessFlowTenant.png diff --git a/docs/docs/images/Automate.png b/docs/docs/Images/Automate.png similarity index 100% rename from docs/docs/images/Automate.png rename to docs/docs/Images/Automate.png diff --git a/docs/docs/Images/AzureAD.jpg b/docs/docs/Images/AzureAD.jpg new file mode 100644 index 0000000000..953ed06174 Binary files /dev/null and b/docs/docs/Images/AzureAD.jpg differ diff --git a/docs/docs/images/AzureAutomationTenantCompliance.jpg b/docs/docs/Images/AzureAutomationTenantCompliance.jpg similarity index 100% rename from docs/docs/images/AzureAutomationTenantCompliance.jpg rename to docs/docs/Images/AzureAutomationTenantCompliance.jpg diff --git a/docs/docs/images/BranchSelection.png b/docs/docs/Images/BranchSelection.png similarity index 100% rename from docs/docs/images/BranchSelection.png rename to docs/docs/Images/BranchSelection.png diff --git a/docs/docs/images/CloneByURL.png b/docs/docs/Images/CloneByURL.png similarity index 100% rename from docs/docs/images/CloneByURL.png rename to docs/docs/Images/CloneByURL.png diff --git a/docs/docs/images/CloneRepo.png b/docs/docs/Images/CloneRepo.png similarity index 100% rename from docs/docs/images/CloneRepo.png rename to docs/docs/Images/CloneRepo.png diff --git a/docs/docs/images/ConfirmMerge.png b/docs/docs/Images/ConfirmMerge.png similarity index 100% rename from docs/docs/images/ConfirmMerge.png rename to docs/docs/Images/ConfirmMerge.png diff --git a/docs/docs/images/CreateBranch.png b/docs/docs/Images/CreateBranch.png similarity index 100% rename from docs/docs/images/CreateBranch.png rename to docs/docs/Images/CreateBranch.png diff --git a/docs/docs/images/CreateFork.jpg b/docs/docs/Images/CreateFork.jpg similarity index 100% rename from docs/docs/images/CreateFork.jpg rename to docs/docs/Images/CreateFork.jpg diff --git a/docs/docs/images/CreatePRtoMainRepo.png b/docs/docs/Images/CreatePRtoMainRepo.png similarity index 100% rename from docs/docs/images/CreatePRtoMainRepo.png rename to docs/docs/Images/CreatePRtoMainRepo.png diff --git a/docs/docs/images/CreatingACommit.png b/docs/docs/Images/CreatingACommit.png similarity index 100% rename from docs/docs/images/CreatingACommit.png rename to docs/docs/Images/CreatingACommit.png diff --git a/docs/docs/images/DSCEventlog.png b/docs/docs/Images/DSCEventlog.png similarity index 100% rename from docs/docs/images/DSCEventlog.png rename to docs/docs/Images/DSCEventlog.png diff --git a/docs/docs/images/DeleteBranch.png b/docs/docs/Images/DeleteBranch.png similarity index 100% rename from docs/docs/images/DeleteBranch.png rename to docs/docs/Images/DeleteBranch.png diff --git a/docs/docs/images/DevBranch.png b/docs/docs/Images/DevBranch.png similarity index 100% rename from docs/docs/images/DevBranch.png rename to docs/docs/Images/DevBranch.png diff --git a/docs/docs/images/ExportUI.png b/docs/docs/Images/ExportUI.png similarity index 100% rename from docs/docs/images/ExportUI.png rename to docs/docs/Images/ExportUI.png diff --git a/docs/docs/images/ForkLocation.jpg b/docs/docs/Images/ForkLocation.jpg similarity index 100% rename from docs/docs/images/ForkLocation.jpg rename to docs/docs/Images/ForkLocation.jpg diff --git a/docs/docs/images/Forking.png b/docs/docs/Images/Forking.png similarity index 100% rename from docs/docs/images/Forking.png rename to docs/docs/Images/Forking.png diff --git a/docs/docs/images/GUI.png b/docs/docs/Images/GUI.png similarity index 100% rename from docs/docs/images/GUI.png rename to docs/docs/Images/GUI.png diff --git a/docs/docs/images/ImportModule.png b/docs/docs/Images/ImportModule.png similarity index 100% rename from docs/docs/images/ImportModule.png rename to docs/docs/Images/ImportModule.png diff --git a/docs/docs/Images/Intune.jpg b/docs/docs/Images/Intune.jpg new file mode 100644 index 0000000000..798f915128 Binary files /dev/null and b/docs/docs/Images/Intune.jpg differ diff --git a/docs/docs/images/M365DSC-InfoGraphic.png b/docs/docs/Images/M365DSC-InfoGraphic.png similarity index 100% rename from docs/docs/images/M365DSC-InfoGraphic.png rename to docs/docs/Images/M365DSC-InfoGraphic.png diff --git a/docs/docs/images/M365DSCEventViewer.png b/docs/docs/Images/M365DSCEventViewer.png similarity index 100% rename from docs/docs/images/M365DSCEventViewer.png rename to docs/docs/Images/M365DSCEventViewer.png diff --git a/docs/docs/images/MergePR.png b/docs/docs/Images/MergePR.png similarity index 100% rename from docs/docs/images/MergePR.png rename to docs/docs/Images/MergePR.png diff --git a/docs/docs/images/Monitor.png b/docs/docs/Images/Monitor.png similarity index 100% rename from docs/docs/images/Monitor.png rename to docs/docs/Images/Monitor.png diff --git a/docs/docs/images/MonitorFlow.png b/docs/docs/Images/MonitorFlow.png similarity index 100% rename from docs/docs/images/MonitorFlow.png rename to docs/docs/Images/MonitorFlow.png diff --git a/docs/docs/images/NewBranchCreated.png b/docs/docs/Images/NewBranchCreated.png similarity index 100% rename from docs/docs/images/NewBranchCreated.png rename to docs/docs/Images/NewBranchCreated.png diff --git a/docs/docs/Images/Office365.jpg b/docs/docs/Images/Office365.jpg new file mode 100644 index 0000000000..c4b06a812e Binary files /dev/null and b/docs/docs/Images/Office365.jpg differ diff --git a/docs/docs/Images/OneDrive.jpg b/docs/docs/Images/OneDrive.jpg new file mode 100644 index 0000000000..bc5f96801b Binary files /dev/null and b/docs/docs/Images/OneDrive.jpg differ diff --git a/docs/docs/images/PRDetails.png b/docs/docs/Images/PRDetails.png similarity index 100% rename from docs/docs/images/PRDetails.png rename to docs/docs/Images/PRDetails.png diff --git a/docs/docs/images/PRDetailsToMainRepo.png b/docs/docs/Images/PRDetailsToMainRepo.png similarity index 100% rename from docs/docs/images/PRDetailsToMainRepo.png rename to docs/docs/Images/PRDetailsToMainRepo.png diff --git a/docs/docs/images/PRinGHDesktop.png b/docs/docs/Images/PRinGHDesktop.png similarity index 100% rename from docs/docs/images/PRinGHDesktop.png rename to docs/docs/Images/PRinGHDesktop.png diff --git a/docs/docs/Images/Planner.png b/docs/docs/Images/Planner.png new file mode 100644 index 0000000000..e09ed1e5e5 Binary files /dev/null and b/docs/docs/Images/Planner.png differ diff --git a/docs/docs/Images/PowerApps.png b/docs/docs/Images/PowerApps.png new file mode 100644 index 0000000000..68973e8c06 Binary files /dev/null and b/docs/docs/Images/PowerApps.png differ diff --git a/docs/docs/images/Promo.png b/docs/docs/Images/Promo.png similarity index 100% rename from docs/docs/images/Promo.png rename to docs/docs/Images/Promo.png diff --git a/docs/docs/images/PushingChanges.png b/docs/docs/Images/PushingChanges.png similarity index 100% rename from docs/docs/images/PushingChanges.png rename to docs/docs/Images/PushingChanges.png diff --git a/docs/docs/images/RepoChangedFile.png b/docs/docs/Images/RepoChangedFile.png similarity index 100% rename from docs/docs/images/RepoChangedFile.png rename to docs/docs/Images/RepoChangedFile.png diff --git a/docs/docs/images/ReportFlow.png b/docs/docs/Images/ReportFlow.png similarity index 100% rename from docs/docs/images/ReportFlow.png rename to docs/docs/Images/ReportFlow.png diff --git a/docs/docs/Images/SecurityAndCompliance.png b/docs/docs/Images/SecurityAndCompliance.png new file mode 100644 index 0000000000..c1dea8c4d5 Binary files /dev/null and b/docs/docs/Images/SecurityAndCompliance.png differ diff --git a/docs/docs/images/SelectSourceBranch.png b/docs/docs/Images/SelectSourceBranch.png similarity index 100% rename from docs/docs/images/SelectSourceBranch.png rename to docs/docs/Images/SelectSourceBranch.png diff --git a/docs/docs/images/SelectTargetBranch.png b/docs/docs/Images/SelectTargetBranch.png similarity index 100% rename from docs/docs/images/SelectTargetBranch.png rename to docs/docs/Images/SelectTargetBranch.png diff --git a/docs/docs/Images/SharePoint.jpg b/docs/docs/Images/SharePoint.jpg new file mode 100644 index 0000000000..1870ba4174 Binary files /dev/null and b/docs/docs/Images/SharePoint.jpg differ diff --git a/docs/docs/images/SmallLogo.png b/docs/docs/Images/SmallLogo.png similarity index 100% rename from docs/docs/images/SmallLogo.png rename to docs/docs/Images/SmallLogo.png diff --git a/docs/docs/images/SuccessfulCommit.png b/docs/docs/Images/SuccessfulCommit.png similarity index 100% rename from docs/docs/images/SuccessfulCommit.png rename to docs/docs/Images/SuccessfulCommit.png diff --git a/docs/docs/images/SyncFlow.png b/docs/docs/Images/SyncFlow.png similarity index 100% rename from docs/docs/images/SyncFlow.png rename to docs/docs/Images/SyncFlow.png diff --git a/docs/docs/images/Synchronize.png b/docs/docs/Images/Synchronize.png similarity index 100% rename from docs/docs/images/Synchronize.png rename to docs/docs/Images/Synchronize.png diff --git a/docs/docs/Images/Teams.jpg b/docs/docs/Images/Teams.jpg new file mode 100644 index 0000000000..dc17652462 Binary files /dev/null and b/docs/docs/Images/Teams.jpg differ diff --git a/docs/docs/images/analyse.PNG b/docs/docs/Images/analyse.PNG similarity index 100% rename from docs/docs/images/analyse.PNG rename to docs/docs/Images/analyse.PNG diff --git a/docs/docs/images/blueprint.PNG b/docs/docs/Images/blueprint.PNG similarity index 100% rename from docs/docs/images/blueprint.PNG rename to docs/docs/Images/blueprint.PNG diff --git a/docs/docs/images/export.PNG b/docs/docs/Images/export.PNG similarity index 100% rename from docs/docs/images/export.PNG rename to docs/docs/Images/export.PNG diff --git a/docs/docs/images/favicon.ico b/docs/docs/Images/favicon.ico similarity index 100% rename from docs/docs/images/favicon.ico rename to docs/docs/Images/favicon.ico diff --git a/docs/docs/images/home_assess.png b/docs/docs/Images/home_assess.png similarity index 100% rename from docs/docs/images/home_assess.png rename to docs/docs/Images/home_assess.png diff --git a/docs/docs/images/home_export.png b/docs/docs/Images/home_export.png similarity index 100% rename from docs/docs/images/home_export.png rename to docs/docs/Images/home_export.png diff --git a/docs/docs/images/home_monitor.png b/docs/docs/Images/home_monitor.png similarity index 100% rename from docs/docs/images/home_monitor.png rename to docs/docs/Images/home_monitor.png diff --git a/docs/docs/images/icon.png b/docs/docs/Images/icon.png similarity index 100% rename from docs/docs/images/icon.png rename to docs/docs/Images/icon.png diff --git a/docs/docs/images/report.PNG b/docs/docs/Images/report.PNG similarity index 100% rename from docs/docs/images/report.PNG rename to docs/docs/Images/report.PNG diff --git a/docs/docs/concepts/odsp-permissions.md b/docs/docs/concepts/odsp-permissions.md index fdacedabbb..f1291a8a4f 100644 --- a/docs/docs/concepts/odsp-permissions.md +++ b/docs/docs/concepts/odsp-permissions.md @@ -24,13 +24,13 @@ All SharePoint and OneDrive resources work with the SharePoint Admin role assign When executing the Export-M365DSCConfiguration cmdlet user name and password should be filled in the following fields: -![User name and Password](../images/userpwdpng.png "Username and Password") +![User name and Password](../Images/userpwdpng.png 'Username and Password') ## Azure AD app permissions The best option when using Microsoft365DSC with SharePoint and OneDrive is to use an Azure AD app principal. When using AAD App permission Microsoft365DSC supports 2 different scenarios, certificate path option or installing certificate and using the thumbprint. The permissions required for Azure AD applications are SharePoint Site.FullControl.All scope. -![API Permissions](../images/APIPermissions.png "SharePoint Permissions") +![API Permissions](../Images/APIPermissions.png 'SharePoint Permissions') ### Configure AzureAD app for Microsoft365DSC @@ -42,7 +42,7 @@ Initialize-PnPPowerShellAuthentication -ApplicationName TestApp2 -Tenant contoso This cmdlet will open a dialog box to authenticate to Azure AD and grant admin consent once its created the AzureAD app. It will also install the certificate in current user store and output a PFX file in the c:\dsc directory. If you plan to use the certificate thumbprint option when using -DSC by default the LCM runs under the system account so easiest option to install in cert store is by using [PSExec](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec). To install certificate under system account using PSExec run the following: +DSC by default the LCM runs under the system account so easiest option to install in cert store is by using [PSExec](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec). To install certificate under system account using PSExec run the following: 1. .\PsExec.exe -s -i mmc.exe 2. File add / remove snapin > Select certificates > MyUser account @@ -52,9 +52,9 @@ DSC by default the LCM runs under the system account so easiest option to instal After AzureAD app is created and certificate is installed you need some additional properties before you can use with Microsoft365DSC. Login to Azure Active Directory and browse to the App registrations page you should see the TestApp2 app created from the script above. We need to copy the following properties: -![Application Id](../images/AppId.png "Application ID") +![Application Id](../Images/AppId.png 'Application ID') -![Certificate Thumbprint](../images/CertificateThump.png "Certificate Thumbprint") +![Certificate Thumbprint](../Images/CertificateThump.png 'Certificate Thumbprint') ### Using Certificate Thumbprint option @@ -67,7 +67,7 @@ when using certificate thumbprint. From the Export-M365DSCConfiguration GUI the following fields should be used: -![ExportThumprint](../images/ExportCertThumb.png "Export using thumbprint") +![ExportThumprint](../Images/ExportCertThumb.png 'Export using thumbprint') ### Using Certificate Path option @@ -81,4 +81,4 @@ would be the best solution. The following parameters are required when using cer From the Export-M365DSCConfiguration GUI the following fields should be used: -![Export using Certificate Path](../images/CertPath.png){ align=center width=500 } +![Export using Certificate Path](../Images/CertPath.png){ align=center width=500 } diff --git a/docs/docs/contributing/getting-started.md b/docs/docs/contributing/getting-started.md index 93a90ee898..f89ab37973 100644 --- a/docs/docs/contributing/getting-started.md +++ b/docs/docs/contributing/getting-started.md @@ -2,29 +2,27 @@ The Microsoft365DSC project is open to contribution from the community. In order to contribute to it, you are expected to have some basic level of knowledge of how GitHub works. This wiki page tries to simplify the process of contributing back to the project by providing you with a step-by-step process. - 1. **Fork the base repository** -* Navigate to the main repository page of the Microsoft365DSC project (e.g. https://GitHub.com/Microsoft/Microsoft365DSC); - -* In the top right corner of the page, click on the **Fork** button; -![Infographic](../images/CreateFork.jpg){ align=center width=500 } +- Navigate to the main repository page of the Microsoft365DSC project (e.g. https://GitHub.com/Microsoft/Microsoft365DSC); -* A dialog box asking you to select the account to fork the repository will appear. Select you account from the list. +- In the top right corner of the page, click on the **Fork** button; -![Select Account to fork under](../images/ForkLocation.jpg){ width=500 } +![Infographic](../Images/CreateFork.jpg){ align=center width=500 } +- A dialog box asking you to select the account to fork the repository will appear. Select you account from the list. -* The forking process should only take a few seconds. While the forking is in progress you will see the following screen. +![Select Account to fork under](../Images/ForkLocation.jpg){ width=500 } -![Forking progress](../images/Forking.png){ align=center width=500 } +- The forking process should only take a few seconds. While the forking is in progress you will see the following screen. +![Forking progress](../Images/Forking.png){ align=center width=500 } -* Once completed, you have now a completely forked repository, meaning you have an exact replica of the main repository, under you own GitHub account. The changes you will be working on, will be done in this new forked repository. Once you are satisfied with your changes, they can be submitted back to the owners of the main Module repository via what we call a **Pull Request** (covered later in this post). +- Once completed, you have now a completely forked repository, meaning you have an exact replica of the main repository, under you own GitHub account. The changes you will be working on, will be done in this new forked repository. Once you are satisfied with your changes, they can be submitted back to the owners of the main Module repository via what we call a **Pull Request** (covered later in this post). 2. **Create a Feature Branch** -* Creating a Fork is the equivalent of creating a separate workspace for you to start working on your changes. What we need to do now, is create a new Branch inside that Fork. Think of a branch as being a project within your workspace. Every feature or issue you work on should be in its own branch. By default, when you forked the main repository, you created a copy of the **Dev** repository from the main repository, inside your fork. Every branch you create in your fork, will essentially be a copy of that Forked Dev branch. Let's put all this in context: +- Creating a Fork is the equivalent of creating a separate workspace for you to start working on your changes. What we need to do now, is create a new Branch inside that Fork. Think of a branch as being a project within your workspace. Every feature or issue you work on should be in its own branch. By default, when you forked the main repository, you created a copy of the **Dev** repository from the main repository, inside your fork. Every branch you create in your fork, will essentially be a copy of that Forked Dev branch. Let's put all this in context: **Main Repository** **Forked Repository** Branches: Branches: @@ -35,121 +33,114 @@ The Microsoft365DSC project is open to contribution from the community. In order In the example above, Feature 1 and Feature 2 are both branches that were created from the Dev branch of the Forked Repository. In order to submit the changes in Feature 1 back into the Main Repository, you will need to first create a Pull Request to have Feature 1 merged back into the Dev branch of your Forked Repository, and then once done, create yet another Pull Request to merge the Forked Repository's Dev branch (which now includes the changes for Feature 1) back in the Main Repository's Dev branch. -* To create a branch, navigate to the main page of your Forked Repository, and click on the **Branch** button. - -![Branch button](../images/DevBranch.png){ align=center width=500 } +- To create a branch, navigate to the main page of your Forked Repository, and click on the **Branch** button. +![Branch button](../Images/DevBranch.png){ align=center width=500 } -* The next step is not intuitive, but to create a new branch, simply start typing the name of the new branch you wish to create and press enter. +- The next step is not intuitive, but to create a new branch, simply start typing the name of the new branch you wish to create and press enter. -![Create a new GitHub Branch](../images/CreateBranch.png){ align=center width=500 } +![Create a new GitHub Branch](../Images/CreateBranch.png){ align=center width=500 } -* This will automatically create the branch inside your Forked Repository. In order to validate that you are currently viewing file from the branch you just created, you should now see the Branch button listing the newly created branch on the Forked Repository's home page. - -![New Branch in GitHub](../images/NewBranchCreated.png){ align=center width=500 } +- This will automatically create the branch inside your Forked Repository. In order to validate that you are currently viewing file from the branch you just created, you should now see the Branch button listing the newly created branch on the Forked Repository's home page. +![New Branch in GitHub](../Images/NewBranchCreated.png){ align=center width=500 } 3. **Cloning the Forked Repository** -* In GitHub, cloning is the process of "downloading" the content of a branch onto your local machine for editing. My recommendation here will be to download and install the GitHub client for Windows https://desktop.github.com/. It just makes things a lot easier than having to deal with the console Git client (or even the VSCode built-in tools for that matter). -* Open GitHub for Windows, and select **File > Clone Repository...**. +- In GitHub, cloning is the process of "downloading" the content of a branch onto your local machine for editing. My recommendation here will be to download and install the GitHub client for Windows https://desktop.github.com/. It just makes things a lot easier than having to deal with the console Git client (or even the VSCode built-in tools for that matter). -![Clone Repository](../images/CloneRepo.png){ align=center width=500 } +- Open GitHub for Windows, and select **File > Clone Repository...**. +![Clone Repository](../Images/CloneRepo.png){ align=center width=500 } -* In the Clone a Repository dialogue, select the **URL** tab and provide the URL to your Forked Repository, as well as a local path where the content of the repository is going to be downloaded locally. Click on the **Clone** button. +- In the Clone a Repository dialogue, select the **URL** tab and provide the URL to your Forked Repository, as well as a local path where the content of the repository is going to be downloaded locally. Click on the **Clone** button. -![Clone Github Repository by URL](../images/CloneByURL.png){ align=center width=500 } +![Clone Github Repository by URL](../Images/CloneByURL.png){ align=center width=500 } -* Wait for the cloning to finish. +- Wait for the cloning to finish. -* You now have a local copy of the repository on your local machine. +- You now have a local copy of the repository on your local machine. 4. **Changing Branches** -* Once you have cloned the Forked Repository onto your local machine, you can easily go and change Branch by simply clicking on the **Current Branch** at the top of the GitHub client for Windows and by selecting the branch you wish to work on. -![Changing Branch from a Cloned Github Repository](../images/BranchSelection.png){ align=center width=500 } +- Once you have cloned the Forked Repository onto your local machine, you can easily go and change Branch by simply clicking on the **Current Branch** at the top of the GitHub client for Windows and by selecting the branch you wish to work on. +![Changing Branch from a Cloned Github Repository](../Images/BranchSelection.png){ align=center width=500 } -* The moment you change branch from the GitHub client, the file that are located in the directory where you cloned the Forked Repository's content will get updated with the content for that branch. When dealing with Git, you always work in the same clone repository. The fact that you have multiple branches existing in a clone repository doesn't mean that you will have multiple copies of the files on the machine. You control what version of the files will be in that local repository by changing the current Branch in the GitHub client for Windows. +- The moment you change branch from the GitHub client, the file that are located in the directory where you cloned the Forked Repository's content will get updated with the content for that branch. When dealing with Git, you always work in the same clone repository. The fact that you have multiple branches existing in a clone repository doesn't mean that you will have multiple copies of the files on the machine. You control what version of the files will be in that local repository by changing the current Branch in the GitHub client for Windows. 5. **Making Changes** -* Once you made sure the branch representing the feature or the issue you are about to work on is selected in the Current Branch of the GitHub client for Windows, you can go ahead and start making changes to the local files. I personally recommend editing the files in Visual Studio Code (https://code.visualstudio.com/), but using other tools such as the PowerShell Integrated Script Editor (ISE) or even other Scripting Editor tool will work just as good. -6. **Committing Changes** -* Committing changes in the context of Git means saving the changes in the currently selected branch, but **locally**. Git keeps some sort of a local database when a repository is cloned, and upon committing changes, these are saved back to the local database. So for example, if you are working on multiple changes in various branches at the same time, you want to make sure you commit your changes to the current branch before using the GitHub client for Windows to change branch. Otherwise your changes will get overwritten by the changes in the newly selected branch (remember that changing a branch updates the local files). +- Once you made sure the branch representing the feature or the issue you are about to work on is selected in the Current Branch of the GitHub client for Windows, you can go ahead and start making changes to the local files. I personally recommend editing the files in Visual Studio Code (https://code.visualstudio.com/), but using other tools such as the PowerShell Integrated Script Editor (ISE) or even other Scripting Editor tool will work just as good. -* To commit a change, once the changes are made to the files, open the GitHub Client for Windows. the client should be smart enough to automatically detect that changes have been made. +6. **Committing Changes** -![File changed in the repository](../images/RepoChangedFile.png){ align=center width=500 } +- Committing changes in the context of Git means saving the changes in the currently selected branch, but **locally**. Git keeps some sort of a local database when a repository is cloned, and upon committing changes, these are saved back to the local database. So for example, if you are working on multiple changes in various branches at the same time, you want to make sure you commit your changes to the current branch before using the GitHub client for Windows to change branch. Otherwise your changes will get overwritten by the changes in the newly selected branch (remember that changing a branch updates the local files). +- To commit a change, once the changes are made to the files, open the GitHub Client for Windows. the client should be smart enough to automatically detect that changes have been made. -* Once changes are detected in the GitHub client for Windows, you will be allowed to give a Summary and a Description for the changes you are about to commit, and to commit them back to the local database by clicking on the **Commit To** button. +![File changed in the repository](../Images/RepoChangedFile.png){ align=center width=500 } -![Commit changes](../images/CreatingACommit.png){ align=center width=500 } +- Once changes are detected in the GitHub client for Windows, you will be allowed to give a Summary and a Description for the changes you are about to commit, and to commit them back to the local database by clicking on the **Commit To** button. +![Commit changes](../Images/CreatingACommit.png){ align=center width=500 } 7. **Push Committed Changes Back to GitHub** -* Now the changes have been committed back to the local database, we need to Push them up back into GitHub. To do so, we need to click on the **Push Origin** button at the top of the GitHub client for Windows. -![Push Changes back to GitHub](../images/PushingChanges.png){ align=center width=500 } +- Now the changes have been committed back to the local database, we need to Push them up back into GitHub. To do so, we need to click on the **Push Origin** button at the top of the GitHub client for Windows. +![Push Changes back to GitHub](../Images/PushingChanges.png){ align=center width=500 } -* To validate that your recent changes have been successfully uploaded back into GitHub, navigate to the main page of your Forked Repository, and make sure you select the branch in which you just uploaded (PUSHED) you changes back into. You should see a mention at the top, in the history section, that lists your latest changes that have been successfully uploaded back into GitHub. - -![Successful commit back into GitHub](../images/SuccessfulCommit.png){ align=center width=500 } +- To validate that your recent changes have been successfully uploaded back into GitHub, navigate to the main page of your Forked Repository, and make sure you select the branch in which you just uploaded (PUSHED) you changes back into. You should see a mention at the top, in the history section, that lists your latest changes that have been successfully uploaded back into GitHub. +![Successful commit back into GitHub](../Images/SuccessfulCommit.png){ align=center width=500 } 8. **Merging the Changes back into Your Dev Branch** -* As explained in step 2 above, the operation of merging two branches together in Git is called a Pull Request. In our case we discussed that once you are done making changes in your branch, inside your Forked Repository, that 2 Pull Requests have to happen before your changes make it back into the Main Repository. - -* The first Pull Request will merge the changes in your Feature/Issue specific branch, back into your Forked Repository's Dev branch. To initiate a Pull Request, click on the **Branch** menu inside the GitHub client for Windows, and select the **Create pull request** option. - -![Initiating a Pull Request in GitHub for Windows](../images/PRinGHDesktop.png){ align=center width=500 } - - -* This will launch the GitHub Pull request form in the browser. Make sure you update the left drop down menu (base:) to point to your Forked Repository's Dev Branch. -![Select Forked Repository's Dev branch as base](../images/SelectTargetBranch.png){ align=center width=500 } +- As explained in step 2 above, the operation of merging two branches together in Git is called a Pull Request. In our case we discussed that once you are done making changes in your branch, inside your Forked Repository, that 2 Pull Requests have to happen before your changes make it back into the Main Repository. +- The first Pull Request will merge the changes in your Feature/Issue specific branch, back into your Forked Repository's Dev branch. To initiate a Pull Request, click on the **Branch** menu inside the GitHub client for Windows, and select the **Create pull request** option. -* Make sure that the right hand drop down menu (compare:) has your feature/issue specific branch selected. +![Initiating a Pull Request in GitHub for Windows](../Images/PRinGHDesktop.png){ align=center width=500 } -![Compare Branch in GitHub](../images/SelectSourceBranch.png){ align=center width=500 } +- This will launch the GitHub Pull request form in the browser. Make sure you update the left drop down menu (base:) to point to your Forked Repository's Dev Branch. +![Select Forked Repository's Dev branch as base](../Images/SelectTargetBranch.png){ align=center width=500 } -* Now that both the base and compare branches have been properly selected, you can initiate the Pull Request by clicking on the **Create pull request** button. +- Make sure that the right hand drop down menu (compare:) has your feature/issue specific branch selected. -![Create Pull Request](../images/PRDetails.png){ align=center width=500 } +![Compare Branch in GitHub](../Images/SelectSourceBranch.png){ align=center width=500 } -* If all goes well and no conflicts were detected, GitHub will offer you the option to **Merge pull request**. Click on that green button to initiate the merge operation. +- Now that both the base and compare branches have been properly selected, you can initiate the Pull Request by clicking on the **Create pull request** button. -![Merge Pull Request in Github](../images/MergePR.png){ align=center width=500 } +![Create Pull Request](../Images/PRDetails.png){ align=center width=500 } -* This will prompt you to confirm your intentions. Click on the **Confirm merge** green button. +- If all goes well and no conflicts were detected, GitHub will offer you the option to **Merge pull request**. Click on that green button to initiate the merge operation. -![Confirm Merge in GitHub](../images/ConfirmMerge.png){ align=center width=500 } +![Merge Pull Request in Github](../Images/MergePR.png){ align=center width=500 } -* At this point, your changes have been successfully merged back into the Dev branch of your Forked Repository, and chances are you no longer need that Feature/Issue specific branch. You can simply delete it by clicking the purple **Delete branch** button that GitHub presents to you. +- This will prompt you to confirm your intentions. Click on the **Confirm merge** green button. -![Delete GitHub Merged Branch](../images/DeleteBranch.png){ align=center width=500 } +![Confirm Merge in GitHub](../Images/ConfirmMerge.png){ align=center width=500 } -* We are almost there, we now need to create yet another Pull Request, this time to merge the changes we just merged into our Forked Repository's Dev branch back into the Main Repository's Dev branch. From the GitHub client, select once again the **Branch > Create pull request** option. +- At this point, your changes have been successfully merged back into the Dev branch of your Forked Repository, and chances are you no longer need that Feature/Issue specific branch. You can simply delete it by clicking the purple **Delete branch** button that GitHub presents to you. -![Infographic](../images/PRinGHDesktop.png){ align=center width=500 } +![Delete GitHub Merged Branch](../Images/DeleteBranch.png){ align=center width=500 } +- We are almost there, we now need to create yet another Pull Request, this time to merge the changes we just merged into our Forked Repository's Dev branch back into the Main Repository's Dev branch. From the GitHub client, select once again the **Branch > Create pull request** option. -* This time around, in the Pull Request online form, make sure the left branch (base fork:) is pointing to the Main Repository's Dev branch, and that the right one (head fork:) is set to your Forked Repository's Dev branch. +![Infographic](../Images/PRinGHDesktop.png){ align=center width=500 } -![Infographic](../images/CreatePRtoMainRepo.png){ align=center width=500 } +- This time around, in the Pull Request online form, make sure the left branch (base fork:) is pointing to the Main Repository's Dev branch, and that the right one (head fork:) is set to your Forked Repository's Dev branch. +![Infographic](../Images/CreatePRtoMainRepo.png){ align=center width=500 } -* Click on the green **Create pull request** button. +- Click on the green **Create pull request** button. -* Provide a Summary and a Description for your Pull Request, and click on the green **Create pull request** button yet again. +- Provide a Summary and a Description for your Pull Request, and click on the green **Create pull request** button yet again. -![Infographic](../images/PRDetailsToMainRepo.png){ align=center width=500 } +![Infographic](../Images/PRDetailsToMainRepo.png){ align=center width=500 } -* At that point, you are done! The Core team will review your changes, provide feedback if required, and will merge the changes back into the official Main Repository. +- At that point, you are done! The Core team will review your changes, provide feedback if required, and will merge the changes back into the official Main Repository. Thanks for contributing to Microsoft365Dsc! diff --git a/docs/docs/home/what-is-M365DSC.md b/docs/docs/home/what-is-M365DSC.md index 6af854107a..460aba1a68 100644 --- a/docs/docs/home/what-is-M365DSC.md +++ b/docs/docs/home/what-is-M365DSC.md @@ -1,12 +1,12 @@ # What is Microsoft365DSC? + Microsoft365DSC is an Open-Source initiative lead by Microsoft engineers and maintained by the community. It allows you to write a definition for how your Microsoft 365 tenant should be configured, automate the deployment of that configuration and ensures the monitoring of the defined configuration, notifying and acting on detected configuration drifts. It also allows you to extract a full-fidelity configuration out of any existing Microsoft 365 tenant. The tool covers all major Microsoft 365 workloads such as Exchange Online, Teams, SharePoint, OneDrive, Security and Compliance, Power Platforms, Intune and Planner. Microsoft365DSC is build as a module for the [PowerShell Desired State Configuration](https://docs.microsoft.com/en-us/powershell/scripting/dsc/overview/overview) framework and is made available via the [PowerShell Gallery](https://www.powershellgallery.com/packages/Microsoft365DSC/). -![Infographic](../images/M365DSC-InfoGraphic.png){ align=center width=500 } - -## Automate ![Infographic](../images/Automate.png){ align=left width=100 } +![Infographic](../Images/M365DSC-InfoGraphic.png){ align=center width=500 } +## Automate ![Infographic](../Images/Automate.png){ align=left width=100 } Using PowerShell Desired State Configuration (DSC) syntax, write a complete definition of how you want your Microsoft 365 tenant to be configured. The Microsoft365DSC module allows Microsoft 365 administrators to define how the configuration of the various workloads (SharePoint, Exchange, Security & Compliance, Teams, etc.), and apply the configuration in an automated way. For example, administrator that wishes to deploy a new Search Managed Property to their SharePoint Online workload, can do so with similar lines of code (all code examples ca be found on the [Resources List](https://github.com/microsoft/Microsoft365DSC/wiki/Resources-List) wiki page): @@ -41,12 +41,11 @@ Just like any other normal PowerShell DSC configuration, your Microsoft365DSC fi See the [Automating](../../user-guide/get-started/apply-config) page for more information about possible options. -## Export ![Infographic](../images/export.PNG){ align=left width=100 } - +## Export ![Infographic](../Images/export.PNG){ align=left width=100 } Microsoft365DSC is the very first PowerShell project that natively supports ReverseDSC. This means that by simply installing the module, you are able to leverage ReverseDSC to extract the entire configuration of any existing tenants. The module exposes a cmdlet called **Export-M365DSCConfiguration** which launches a Graphical User Interface (GUI) that allows you to pick and choose what configuration components you wish to extract in a granular fashion. -![ExportUI](../images/ExportUI.png){ align=center width=500 } +![ExportUI](../Images/ExportUI.png){ align=center width=500 } Upon providing credentials with correct permissions, the tool will begin the extraction of the configuration. Once it completes the extraction, it will prompt you to specify a destination directory to store the extracted artifacts. @@ -54,28 +53,27 @@ The tool will extract several artifacts, including all SharePoint Add-ins and Fr See the [Exporting](../../user-guide/get-started/extract-config) page for more information about possible options. -## Synchronize ![Infographic](../images/Synchronize.png){ align=left width=100 } +## Synchronize ![Infographic](../Images/Synchronize.png){ align=left width=100 } Microsoft365DSC makes it very easy for users to keep multiple tenants' configuration synchronized. With the tool you can export the configuration from any existing tenant and re-apply it onto multiple other tenants, keeping their configuration synchronized. -![SyncFlow](../images/SyncFlow.png){ align=center width=500 } - +![SyncFlow](../Images/SyncFlow.png){ align=center width=500 } You can use this to grab the configuration of a production tenant and apply this configuration onto a test tenant, making sure you can troubleshoot issues with the exact production configuration. -## Assess ![Infographic](../images/Assess.png){ align=left width=100 } +## Assess ![Infographic](../Images/Assess.png){ align=left width=100 } Assess any Microsoft 365 tenant against a known good configuration and generate a discrepency report. Microsoft365DSC makes it feasible for organizations to validate the configuration of their existing Microsoft 365 tenant against industry's best practices with a single line command. You can assess any tenant against any baseline configuration that you and your team developed or use official Blueprints. -![AssessFlowBlueprint](../images/AssessFlowBlueprint.png){ align=center width=500 } +![AssessFlowBlueprint](../Images/AssessFlowBlueprint.png){ align=center width=500 } Microsoft365DSC also allows you to compare two configuration files and obtain the delta between the two. Whether you wish to compare the configuration between 2 tenants or two point-in-time exports of the same tenant, we've got you covered! -![AssessFlowTenant](../images/AssessFlowTenant.png){ align=center width=500 } +![AssessFlowTenant](../Images/AssessFlowTenant.png){ align=center width=500 } See the [Assessing](../../user-guide/get-started/assess-tenants-blueprint) page for more information about possible options. -## Monitor ![Infographic](../images/Monitor.png){ align=left width=100 } +## Monitor ![Infographic](../Images/Monitor.png){ align=left width=100 } Automatic monitoring of configuration drifts in your tenant and notification about detected drifts with in-depth details for troubleshooting. Microsoft365DSC will perform regular checks to detect configuration drifts (every 15 minutes by default) and can take one of the following 3 actions when drifts are detected: @@ -83,14 +81,14 @@ Automatic monitoring of configuration drifts in your tenant and notification abo - Log detailed information about the drifts detected in Event Viewer; - Notify administrators via emails when drifts are detected, providing them with a detailed report as to what the drifts are (requires the use of Azure DevOPS pipelines); -![MonitorFlow](../images/MonitorFlow.png){ align=center width=500 } +![MonitorFlow](../Images/MonitorFlow.png){ align=center width=500 } See the [Monitoring](../../user-guide/get-started/monitor-tenants) page for more information about possible options. -## Report ![Infographic](../images/report.PNG){ align=left width=100 } +## Report ![Infographic](../Images/report.PNG){ align=left width=100 } Take any Microsoft365DSC configuration and generate a user friendly report from it in an Excel or HTML format. With a single command you can convert any Microsoft365DSC configuration -![ReportFlow](../images/ReportFlow.png){ align=center width=500 } +![ReportFlow](../Images/ReportFlow.png){ align=center width=500 } See the [Reporting](../../user-guide/get-started/generate-reports) page for more information about possible options. diff --git a/docs/docs/index.md b/docs/docs/index.md index 0807187fa6..f5859dc4ea 100644 --- a/docs/docs/index.md +++ b/docs/docs/index.md @@ -4,7 +4,7 @@ # Export your configuration -![Export](images/home_export.png){ align=left width=300 } +![Export](Images/home_export.png){ align=left width=300 } **Microsoft365DSC** is the very first PowerShell project that natively **supports ReverseDSC**. This means that by simply installing the module, you are able to leverage ReverseDSC to **extract the entire configuration** of any existing tenants. @@ -13,7 +13,7 @@ # Monitor your configuration -![Monitor](images/home_monitor.png){ align=right width=300 } +![Monitor](Images/home_monitor.png){ align=right width=300 } If something changes in your tenant's configuration, the **continous monitoring feature** of Microsoft365DSC, will automatically detect a drift and can act upon it, like **fixing** it, **logging** the drift or **notifying admins** via email. @@ -22,9 +22,8 @@ If something changes in your tenant's configuration, the **continous monitoring # Assess your configuration -![Export](images/home_assess.png){ align=left width=300 } +![Export](Images/home_assess.png){ align=left width=300 } Assess any Microsoft 365 tenant against a **known good configuration** and generate a **discrepency report**. Microsoft365DSC makes it feasible for organizations to **validate the configuration** of their existing Microsoft 365 tenant against industry's best practices with a single line command. - diff --git a/docs/docs/user-guide/get-started/install-first-module.md b/docs/docs/user-guide/get-started/install-first-module.md index 7de79ff800..6e931af5d8 100644 --- a/docs/docs/user-guide/get-started/install-first-module.md +++ b/docs/docs/user-guide/get-started/install-first-module.md @@ -6,6 +6,6 @@ Install-Module Microsoft365DSC -Force When this is run, PowerShell is pinging the PowerShell gallery, getting the Microsoft365DSC module and will then download and install it locally on the machine. It will download the required components such as the SharePoint PNP module, Azure Active Directory module, the Exchange Online Management Shell, as well as other dependent modules. -![import-module](../../images/ImportModule.png) +![import-module](../../Images/ImportModule.png) Note: It is important that the machine that executes the configuration has internet connectivity back to the Microsoft 365 tenant you are trying to configure or extract the configuration from. diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 4ac54d0837..057f8946c5 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -2,52 +2,52 @@ site_name: Microsoft365DSC - Your Cloud Configuration site_url: https://microsoft.github.io/Microsoft365DSC nav: - Home: - - 'Introduction': 'index.md' - - 'What is Microsoft365DSC?': 'home/what-is-M365DSC.md' + - 'Introduction': 'index.md' + - 'What is Microsoft365DSC?': 'home/what-is-M365DSC.md' - User Guide: - - 'Get Started': - - 'How to install': 'user-guide/get-started/install-first-module.md' - - 'Write your First Microsoft365DSC Configuration': 'user-guide/get-started/write-first-config.md' - - 'Extracting Configuration from an Existing Microsoft 365 Tenant': 'user-guide/get-started/extract-config.md' - - 'Apply a Configuration to your Microsoft 365 Tenant': 'user-guide/get-started/apply-config.md' - - 'Monitor Tenants for Configuration Drifts': 'user-guide/get-started/monitor-tenants.md' - - 'Assess Tenants Against a Blueprint': 'user-guide/get-started/assess-tenants-blueprint.md' - - 'Generating Reports': 'user-guide/get-started/generate-reports.md' - - Advanced: - - 'How to Create a M365DSC Blueprint': 'user-guide/advanced/create-blueprint.md' + - 'Get Started': + - 'How to install': 'user-guide/get-started/install-first-module.md' + - 'Write your First Microsoft365DSC Configuration': 'user-guide/get-started/write-first-config.md' + - 'Extracting Configuration from an Existing Microsoft 365 Tenant': 'user-guide/get-started/extract-config.md' + - 'Apply a Configuration to your Microsoft 365 Tenant': 'user-guide/get-started/apply-config.md' + - 'Monitor Tenants for Configuration Drifts': 'user-guide/get-started/monitor-tenants.md' + - 'Assess Tenants Against a Blueprint': 'user-guide/get-started/assess-tenants-blueprint.md' + - 'Generating Reports': 'user-guide/get-started/generate-reports.md' + - Advanced: + - 'How to Create a M365DSC Blueprint': 'user-guide/advanced/create-blueprint.md' - Contributing: - - 'Guidelines': 'contributing/contribution-guidelines.md' - - 'Getting started': 'contributing/getting-started.md' - - 'Develop a New Resource': 'contributing/develop-new-resource.md' + - 'Guidelines': 'contributing/contribution-guidelines.md' + - 'Getting started': 'contributing/getting-started.md' + - 'Develop a New Resource': 'contributing/develop-new-resource.md' - Concepts: - - 'Breaking Changes Policy': 'concepts/breaking-changes.md' - - 'OneDrive & SharePoint Permissions': 'concepts/odsp-permissions.md' - - 'Consent Flow': 'concepts/consent-flow.md' + - 'Breaking Changes Policy': 'concepts/breaking-changes.md' + - 'OneDrive & SharePoint Permissions': 'concepts/odsp-permissions.md' + - 'Consent Flow': 'concepts/consent-flow.md' - Resources: - - 'Overview': 'resources/overview.md' - - 'Azure AD': 'resources/azure-ad' - - 'Exchange': 'resources/exchange' - - 'Intune': 'resources/intune' - - 'Office365': 'resources/office365' - - 'OneDrive': 'resources/onedrive' - - 'Planner': 'resources/planner' - - 'Power Platform': 'resources/power-platform' - - 'Security & Compliance': 'resources/security-compliance' - - 'SharePoint': 'resources/sharepoint' - - 'Teams': 'resources/teams' + - 'Overview': 'resources/overview.md' + - 'Azure AD': 'resources/azure-ad' + - 'Exchange': 'resources/exchange' + - 'Intune': 'resources/intune' + - 'Office365': 'resources/office365' + - 'OneDrive': 'resources/onedrive' + - 'Planner': 'resources/planner' + - 'Power Platform': 'resources/power-platform' + - 'Security & Compliance': 'resources/security-compliance' + - 'SharePoint': 'resources/sharepoint' + - 'Teams': 'resources/teams' - About: - - 'Why Microsoft365DSC': 'about/why.md' - - 'Changelog': 'about/changelog.md' - - 'License': 'about/license.md' - - 'Community Resources': 'about/community-resources.md' + - 'Why Microsoft365DSC': 'about/why.md' + - 'Changelog': 'about/changelog.md' + - 'License': 'about/license.md' + - 'Community Resources': 'about/community-resources.md' plugins: - search - include_dir_to_nav theme: name: 'material' custom_dir: docs/overrides - logo: images/SmallLogo.png - favicon: images/favicon.ico + logo: Images/SmallLogo.png + favicon: Images/favicon.ico icon: repo: fontawesome/brands/git-alt palette: @@ -68,7 +68,7 @@ theme: markdown_extensions: - admonition - codehilite: - guess_lang: false + guess_lang: false - toc: permalink: true - pymdownx.details