Get-DkimSigningConfig Helper PowerShell Script August 2020

This article "Get-DkimSigningConfig Helper PowerShell Script August 2020" was initially authored on 8-12-2020 (August 12, 2020) and is intended as a free starter guide to understanding concepts and configurations related to Office 365 DKIM, DMARC and more.

Please be advised, this information is not guaranteed to be suitable for complete use as a 100% fool-proof guide to configuration of your email deliverability or DKIM or DMARC. Please note that there is a risk you can cause the ceasing of all proper inbound or outbound email and we would advise you to be very careful.

Many important steps are being omitted from this guide to keep it parsable for the general audience and to avoid making it seem like this is a 100% fool-proof guide. We recommend you do as follows instead: Request a custom Office 365 DKIM Training Workshop using this link especially for any questions or concerns you have about following this guide.

If you get the feeling you might be in for trouble if you try to touch the email settings without being properly prepared, you are RIGHT. You risk making all email stop going in and out, this could cause major losses in your organization. This free Office 365 training guide is intended as a reference guide. However, relying on free guides is not worth it. Before touching your email system, you should check with us about any doubts and questions you have, and best practice guidelines regarding this sort of thing.

Please note, this guide is heavily inspired by and might borrow steps from the following source: (source article – verboon[dot]info) and the original PowerShell script might possible be credited to (source article – verboon[dot]info) as well, please note we do not necessarily endorse that specific website and we do not guarantee the script and steps will work in your specific case. Be careful and beware.

Dynamics Edge is not responsible for any losses attributable to you using the information anywhere on this page or this website. Dynamics Edge does not necessarily endorse nor is necessarily affiliated with any sources mentioned in this article. Moreover, even our services in general do not magically cause us to be liabale for what you do based on what we tell you, everything is AS-IS – on this website and in general – and we advise that you attempt everything on non-production, test environments first and test Office 365 tenants first, even whether you are doing it based on this free article or whether you even have started engaging our services. Please ESPECIALLY take this precaution about the free information we are providing on this page. The information is intentionally incomplete, because some steps vary based on your specific scenario.

If you are looking for detailed instructions how to enable DKIM in Microsoft Office 365 and you have been confused about CNAME DNS TXT and so forth and are not sure what you’re supposed to even put for CNAMEs at all, how to check if you did it right, and so forth, please continue reading on.

Prerequisites

Windows PowerShell
Access to DNS
Access to Exchange Online through PowerShell
PowerShell Script Validate-DkimConfig.ps1 download. You can get the script from here: https://www.www.dynamicsedge.net/wp-content/uploads/2020/08/Validate-DkimConfig-modded-Dynamics-Edge.ps1 or from the bottom of this post.

Connecting to Exchange Online

First you should connect to Exchange Online using PowerShell as below:

$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession $Session -DisableNameChecking

Is Multi-Factor-Authentication (MFA) Enabled In Your Case?

In the case that you have Multi-factor authentication (MFA) enabled, make sure you follow these instructions below instead to connect to Exchange Online. Once you have the MFA enabled module installed, you can run the below command and once that has loaded run Connect-EXOPSSession.

Please note that this command for MFA in particular was not tested exhaustively by Dynamics Edge – the non-MFA version was tested and found to be working – we cannot guarantee either version will work for you. If it is acceptable to temporarily suspend your MFA for the specific user, you may want to consider turning off MFA for the user for a specific, small window of time, presuming this is allowed for your company policies. Do not disable MFA and do not do anything in this article without professional guidance, both from your company, and from an expert such as Dynamics Edge. We highly recommend that you request a custom Office 365 DKIM Training and Consulting Workshop using this link especially for any questions or concerns you have about following this guide, and what you may need to know that is not spelled out for you in this guide.

$CreateEXOPSSession = (Get-ChildItem -Path $env:userprofile -Filter CreateExoPSSession.ps1 -Recurse -ErrorAction SilentlyContinue -Force | Select -Last 1).DirectoryName
. “$CreateEXOPSSession\CreateExoPSSession.ps1”

If all went fine, you should see something confirming your successful issuing of this command.

Check current DKIM configuration status

Run the following command below to see current DKIM configuration

Get-DkimSigningConfig

Gather required settings for DNS

To enable DKIM we must add two CNAME records to DNS, we use the Validate-DkimConfig cmdlet to provide us with the detailed information we must set in DNS

Load the functions included in validate-dkimconfig.ps1 and then run validate-dkimconfig.

Replace "example.com" below with your domain.

PS C:\temp> . .\Validate-DkimConfig.ps1
PS C:\temp> validate-dkimconfig -domain example.com

Please note the dot at the beginning, a space, and then another dot before the slash – this is NOT a typo. It is

. .\Validate-DkimConfig.ps1

Typing in just one dot, or in other words typing .\Validate-DkimConfig.ps1 you should get an error when then typing validate-dkimconfig -domain example.com

This is NOT a typo.

It’s intentionally like this:
. .\Validate-DkimConfig.ps1

Registering DKIM in DNS

Supposing you host DNS in Azure, add the CNAMES there. If you use another DNS, use your dNS control panel to add them over there.

Then run the following command again below.

PS C:\temp> validate-dkimconfig -domain example.com

If you check that the DNS records are active, you should see output saying the keys match andthe CNAMES are active and match the CNAMES for the O365 DKIM Config.

Enable DKIM

Now that we have the DNS records published, it is time ton enable DKM. This is actually done by running the following command below:

New-DkimSigningConfig -DomainName example.com -Enabled $true
Get-DkimSigningConfig

Finally, you should run the following command again to validate all is configured correctly as below.

PS C:\temp> validate-dkimconfig -domain example.com

Request a custom Office 365 DMARC Training Workshop using this link.

Request a custom Office 365 Email Deliverability Training Workshop using this link.

We also recommend you run the validate-dkimconfig -domain command with your onmicrosoft.com domain as well to really understand what this script does. We also recommend you check every line of the script yourself to make sure it does what you think it does. Some organizations do not allow the use of scripts found on the internet – check with your company policy on this. If your company requires a 3rd party professional to do things like this, we highly recommend that you request a custom Office 365 DKIM Training and Consulting Workshop using this link

Please note as of 8-12-2020 we found the script for our purposes largely useful. We do not guarantee that it will work for your scenarios nonetheless, but we can tell you that for some of our purposes we had success.

Note that as of 8-12-2020 we noticed the use of 2048 bit keys, and some lines in the PowerShell were causing false negative reports on key mismatches. Some of the original code in the original PowerShell truncates the 2048 bit keys. This can possibly be solved with small modification to the script.

We solved this for our purposes (and it worked) by replacing all instances of any lines similar to the below:

$txt1Dns.Strings[0].Trim()

with something along the lines of this below:

[system.String]::Join("", $txt1Dns.Strings.Trim()).Trim()

This modification should be the case in our version as of 8-12-2020, if you use specifically our version when you test in your non-production or sandbox Office 365 tenants. We cannot guarantee we made modifications that will solve all possible scenarios, nor can we guarantee this script works at all for your scenario. We are also leaving out a LOT from this guide – for any questions or concerns we recommend you request a custom Office 365 DKIM Training and Consulting Workshop using this link.

Script start (in case the link above to the ps1 doesn’t work or in case you prefer to see it directly here):

function Validate-DkimConfig
{
    [cmdletbinding()]
    Param(
        [parameter(Mandatory=$false)]
        [string]$domain,
        [parameter(Mandatory=$false)]
        [switch]$showAll
    )

    $notFound=$false;

    if ($domain) {
        $config = Get-DkimSigningConfig -Identity $domain -ErrorAction SilentlyContinue
        if ($config) {
            Validate-DkimConfigDomain $config -showAll:$showAll
        } else {
            $notFound=$true;
        }
    }
    else {
        $configs = Get-DkimSigningConfig
        if ($configs -and $configs.Count -gt 0) {
            foreach ($config in $configs) { Validate-DkimConfigDomain $config -showAll:$showAll}
        } else { 
            Write-Host
            Write-Host "No DKIM Signing Configs Found" -ForegroundColor Yellow
            Write-Host
        }
    }

    if ($notFound -and $domain) {
        Write-Host
        Write-Host "Config for domain $($domain) Not Found" -ForegroundColor Yellow
        Write-Host

        if (!$domain.EndsWith("onmicrosoft.com") -and !$domain.EndsWith("microsoftonline.com")) {
            Validate-DkimCnameOnly $domain
        }
    }
}

# Performs the main validation of a configuration
function Validate-DkimConfigDomain
{
    [cmdletbinding()]
    Param(
        [parameter(Mandatory=$true)]
        $config,
        [parameter(Mandatory=$false)]
        [switch]$showAll
    )

    # Display the configuration
    $domain = $config.Domain;
    $onmicrosoft = if ($domain.EndsWith("onmicrosoft.com") -or $domain.EndsWith("microsoftonline.com")) { $true } else { $false }
    $actions = @()

    Write-Host "Config for $domain Found..." -ForegroundColor Yellow
    if ($showAll) {
        $config | fl
    }
    else {
        $config | Select Identity, Enabled, Status, Selector1CNAME, Selector2CNAME, KeyCreationTime, LastChecked, RotateOnDate, SelectorBeforeRotateonDate, SelectorAfterRotateonDate | fl
    }

    if (!$config.Enabled) {
        Write-Host "Config $($config.Name) Not Enabled" -ForegroundColor Yellow
        Write-Host
        $actions += "Config $($config.Name) needs to be Enabled"
    }

    # Get the DNS ENtries
    Write-Host "Locating DNS Entries..." -ForegroundColor Yellow
    $cname1 = "selector1._domainkey.$($domain)"
    $cname2 = "selector2._domainkey.$($domain)"
    $txt1 = $config.Selector1CNAME;
    $txt2 = $config.Selector2CNAME;

    $cname1Dns = Resolve-DnsName -Name $cname1 -Type CNAME -ErrorAction SilentlyContinue
    $cname2Dns = Resolve-DnsName -Name $cname2 -Type CNAME -ErrorAction SilentlyContinue
    $txt1Dns = Resolve-DnsName -Name $txt1 -Type TXT -ErrorAction SilentlyContinue
    $txt2Dns = Resolve-DnsName -Name $txt2 -Type TXT -ErrorAction SilentlyContinue

    # Validate Entries
    Write-Host "Validating DNS Entries..." -ForegroundColor Yellow    

    Write-Host    
    Write-Host "Config CNAME1 : $($config.Selector1CNAME)"
    if (!$onmicrosoft) {
        if ($cname1Dns -and $cname1Dns.NameHost) {
            Write-Host "DNS    CNAME1 : $($cname1Dns.NameHost)"
            Write-Host "TXT Hostname  : $($cname1)"  
            $match = if ($config.Selector1CNAME.Trim() -eq $cname1Dns.NameHost.Trim()) { $true } else { $false }
            if ($match) { 
                write-host "Matched       : $($match)" -ForegroundColor Green
            } else {
                write-host "Matched       : $($match)" -ForegroundColor Red
                $actions += "Publish CNAME TXT Entry $($cname1) with value $($txt1)"
            }
        }
        else {
            write-host "DNS NotFound  : $($cname1)" -ForegroundColor Red
            $actions += "Publish DNS CNAME Entry $($cname1) with value $($txt1)"
        }              
    }

    Write-Host
    Write-Host "Config CNAME2 : $($config.Selector2CNAME)"
    if (!$onmicrosoft) {
        if ($cname2Dns -and $cname2Dns.NameHost) {
            Write-Host "DNS    CNAME2 : $($cname2Dns.NameHost)"
            Write-Host "TXT Hostname  : $($cname2)"
            $match = if ($config.Selector2CNAME.Trim() -eq $cname2Dns.NameHost.Trim()) { $true } else { $false }
            if ($match) { 
                write-host "Matched       : $($match)" -ForegroundColor Green
            } else {
                write-host "Matched       : $($match)" -ForegroundColor Red
                $actions += "Publish DNS CNAME Entry $($cname2) with value $($txt2)"
            }
        }
        else {
            write-host "DNS NotFound  : $($cname2)" -ForegroundColor Red
            $actions += "Publish DNS CNAME Entry $($cname2) with value $($txt2)"
        }        
    }

    Write-Host
    Write-Host "Config   TXT1 : $($config.Selector1PublicKey)"
    if ($txt1Dns -and $txt1Dns.Strings) {
        $key = [system.String]::Join("", $txt1Dns.Strings.Trim()).Trim()
        Write-Host "DNS      TXT1 : $($key)"
        $match = if (Compare-PublicAndConfigKeys $key $config.Selector1PublicKey) { $true } else { $false }
        if ($match) { 
            write-host "Key Match     : $($match)" -ForegroundColor Green
        } else {
            write-host "Key Match     : $($match)" -ForegroundColor Red
            $actions += "Public Key in TXT Entry $($txt1) needs to be republished..."
        }
    }
    else {
        write-host "DNS NotFound  : $($txt1)" -ForegroundColor Red
        $actions += "Microsoft TXT Entry $($txt1) not found so Signing Config needs to be recreated..."
    }

    Write-Host
    Write-Host "Config   TXT2 : $($config.Selector2PublicKey)"
    if ($txt2Dns -and $txt2Dns.Strings) {
        $key = [system.String]::Join("", $txt2Dns.Strings.Trim()).Trim()
        Write-Host "DNS      TXT2 : $($key)"
        $match = if (Compare-PublicAndConfigKeys $key $config.Selector2PublicKey) { $true } else { $false }
        if ($match) { 
            write-host "Key Match     : $($match)" -ForegroundColor Green
        } else {
            write-host "Key Match     : $($match)" -ForegroundColor Red
            $actions += "Public Key in TXT Entry $($txt2) needs to be republished..."
        }        
    }
    else {
        write-host "DNS NotFound  : $($txt2)" -ForegroundColor Red
        $actions += "Microsoft TXT Entry $($txt2) not found so Signing Config needs to be recreated..."
    }

    # Write out neccessary Actions
    Write-Host
    if ($actions.Count -gt 0) {
        Write-Host "Required Actions..." -ForegroundColor Yellow
        foreach ($action in $actions) { write-host $action}
    }
}

# Performs a validation of the Dkim CNAMES
function Validate-DkimCnameOnly
{
    [cmdletbinding()]
    Param(
        [parameter(Mandatory=$true)]
        $domain
    )

    # Get the DNS ENtries
    Write-Host "Locating DNS Entries..." -ForegroundColor Yellow
    $cname1 = "selector1._domainkey.$($domain)"
    $cname2 = "selector2._domainkey.$($domain)"

    $cname1Dns = Resolve-DnsName -Name $cname1 -Type CNAME -ErrorAction SilentlyContinue
    $cname2Dns = Resolve-DnsName -Name $cname2 -Type CNAME -ErrorAction SilentlyContinue

    Write-Host    

    if ($cname1Dns) {
        Write-Host "DNS CNAME1 : $($cname1)" -ForegroundColor Green
        Write-Host "Host Value : $($cname1Dns.NameHost)"
    }
    else {
        write-host "CNAME1 NotFound  : $($cname1)" -ForegroundColor Red
    }

    if ($cname2Dns) {
        Write-Host "DNS CNAME2 : $($cname2)" -ForegroundColor Green
        Write-Host "Host Value : $($cname2Dns.NameHost)"
    }
    else {
        write-host "CNAME2 NotFound  : $($cname2)" -ForegroundColor Red
    }           

    Write-Host
}

# Compares public and published keys
function Compare-PublicAndConfigKeys([string] $publicKey, [string] $configKey)
{
    $match = $false;

    if (![string]::IsNullOrWhiteSpace($publicKey) -and ![string]::IsNullOrWhiteSpace($configKey)) {     
        $regex = "p=(.*?);"
        $foundPublic = $publicKey -match $regex
        $publicValue = if ($foundPublic) { $matches[1] } else { $null }
        $foundConfig = $configKey -match $regex
        $configValue = if ($foundConfig) { $matches[1] } else { $null } 

        if ($foundPublic -and $foundConfig) {
            if ($publicValue.Trim() -eq $configValue.Trim()) {
                $match = $true;
            }
        }
    }

    $match;
}

We hope you enjoyed this and found this helpful.

It is risky to attempt following through with this guide or this configuration yourself, and if you were wondering if things might be missing from this guide – yes there are things missing and you may have issues doing this yourself. You may even have issues doing this on a non-production, test domain! So if possible, we strongly recommend you request a custom Office 365 DKIM Training and Consulting Workshop using this link.

BRK3269 O365 ATP Training Sophisticated Campaigns

Detect the undetectable: Quickly identify compromised users and sophisticated campaigns with O365 ATP

Speakers Abhishek Agrawal from Microsoft
Over 90% of phishing attacks are orchestrated over email. The sole purpose of doing this is to cause organizations and its users harm by compromising identities, moving laterally, exfiltrating data and/or causing disruptions. Hackers launch these attacks using meticulously constructed campaigns that morph continuously. Security teams need advanced threat defenses that recognize campaigns, prevent and detect compromise, and quickly put response measures in place to limit impact in the event of a breach. Come learn why Office 365 Advanced Threat Protection’s amazing new campaign detection capabilities and enhanced compromise detection and response workflows are critical capabilities in your fight against an increasingly sophisticated, capable, and resourceful threat landscape.

Microsoft LMS Teaching and Learning Management Training for Education with Office 365

Dynamics Edge offers Microsoft LMS Training for Education.

Click here, then fill out and submit the form to request more info about Customized Microsoft LMS Training for Education and custom Office 365 for Education Training with Dynamics Edge, official trusted Microsoft Partner.

Get Modern classroom collaboration with Office 365 for Education

Custom Microsoft Office 365 for Education Teaching and Learning Management Systems Training Modules, Workshops and Courses by Dynamics Edge empowers you to learn how to engage in effective classroom collaboration and provides students and teachers with future-ready life skills and ways to manage classrooms.

  • Dynamics Edge’s custom Microsoft O365 LMS Training can help you increase educator and student productivity
  • Start collaboration in and out of the classroom
  • Begin empowering students to build on each other’s innovative ideas
  • Student and content engagement in unique ways

 

Microsoft Care Coordination Training and Solutions for Healthcare

Care Coordination solutions

Click here, then fill out and submit the form to request more info about Customized Microsoft Care Coordination Solutions Training for Healthcare with Dynamics Edge, official trusted Microsoft Partner.

The Care Coordination solutions that combine Dynamics 365, Office 365, Power BI and Azure Cloud Platforms, enable you to manage and connect health care providers, communicate with patients, and more. With Microsoft Dynamics 365 for Healthcare Training you can learn how to use Microsoft Care Coordination to monitor your patients’ progression more effectively and in easier ways. Microsoft Office 365 for Healthcare Training and Coordinated Care solutions improve the quality of patient care services and reduce costs through workflow automation and optimization.

Microsoft O365 D365 Power BI Azure Healthcare Solutions Care Coordination Training Dynamics Edge

Download the Microsoft Care Coordination e-book for more info

Care Coordination Solution Benefits

Engage Patients and Customers

Microsoft Power BI for Healthcare Training allows you to learn how health care teams and care coordinators to work together to construct better patient relationships. Customized Microsoft O365 Healthcare Training by Dynamics Edge teaches you how to do this through self-service portals, multi-channel communications, and interactive call centers.

Microsoft Azure for Healthcare Training Empowers Employees and Health Care Teams

Give care teams and managers Microsoft D365 healthcare training with Dynamics Edge in order to empower them with the skills to use measurement frameworks, automated workflows, and business processes and flows that streamline health care services and overall care.

Increase Clinical and Operational Effectiveness

Use what you’ll learn in Dynamics Edge’s customized Microsoft Power BI Healthcare training to utilize analytics to harness patient and operational data and start optimizing operations. You can inform delivery decisions and patient care coordination while improving population health management.

Revolutionize Healthcare with Microsoft Care Collaboration Solutions

Improve the coordination of patient care services by business process tools and streamlined collaboration. In this way you can enable health care teams to more thoroughly understand patient needs and desires.

Microsoft in the Classroom Office 365 for Education Training Solutions

Microsoft Classroom Training Office 365 for Education Training O365 for Education Training Dynamics Edge Custom Microsoft Classroom Training and Office 365 for Education Training with Dynamics Edge helps you get the modern tools for a collaborative classroom in the new millenium. Click here now, then fill out & submit the form to start the process of customizing a Microsoft O365 for Education Training Course and customized Microsoft in the Classroom Training with Dynamics Edge, trusted official Microsoft Partner.

Do you want to get started with Microsoft in the classroom? We’ve put together a set of upcoming custom Office 365 Classroom Training sessions hosted by Dynamics Edge, an official trusted Microsoft Partner. Use the above link to open and fill out a request form to get custom session information. In these sessions, what happens is that you will get to know how you can make the most of Microsoft in your classroom and custom O365 for Education Training.

For educators who find Office 365 for Education relatively new and who are looking to implement solutions to classroom problems right away, our tailored
Microsoft in the Classroom Training as well as Office 365 Software Licensing, Support and Consulting options may be of interest. This set of custom modules is designed to give educators an understanding of how Office 365 can provide the optimal environment for much better learning outcomes in and out of the classroom. Educators will learn to become more innovative with cloud-based tools, such as through our
Office 365 OneDrive for Education Training modules, regardless of whether the device they use is desktop or mobile or hybrid (Surface Pro tablets) or all of the above. Together we can explore Office 365 through hands-on activities that will introduce educators to Office Online and OneDrive, as well as other initeresting tools like Microsoft Teams.

During our Office 365 Training for Education you can get Office 365 for free! That’s right, it is not just a trial! That is because teachers and students alike are eligible for free instances of Microsoft Office 365 Education software licenses, which includes Excel, PowerPoint, Word, OneNote, and now Microsoft Teams as well as additional tools for the classroom. All you need to get started is a valid school email address to get the free license. Ask Dynamics Edge for more info on the proper procedure. Collaborate on all devices and platforms by building your curriculum with always-accessible files that update in real time through familiar applications. This way, Office in conjunction with Microsoft Teams for Education Training works like you: everywhere you want, because Office 365 Education works on Windows devices as well as iOS and Android devices.

Let Dynamics Edge introduce you to Microsoft Teams! Microsoft Teams Education Training consists of a tailored set of custom modules, workshops, or full training courses with Dynamics Edge that help you understand how Microsoft Teams is a digital hub that brings content, apps and conversation together in one centralized, unified hub. Many educators can create collaborative classrooms, connect in professional learning communities, and start communicating today with school staff all from just a single unified experience in Office 365 Education with Microsoft Teams combined with other portions of the suite.

Custom Microsoft OneNote for Education Training teaches you the ultimate digital notebook to organize and collaborate with students and teachers. OneNote Education Training empowers you to prepare assignments while organizing class materials containing a combination of web content, handwritten text, and even video and audio experiences from your devices, whether desktop or mobile. With more Dynamics Edge custom modules like Microsoft SharePoint for Education Training, learn how to collaborate on documents together. You can invite large or small teams to work with you at the same time. How do you do this? Well, with customized Microsoft SharePoint Training for Education you get when choosing Dynamics Edge, you get to learn how to work within Excel, Word, PowerPoint, Office Online, and more, while understanding how to bring these together when we present our custom SharePoint Online for Education Training Modules to you. For instance we can teach you how to easily add, respond to, and track all updates in just a single version of your document with Microsoft Office 365 for Education.

Microsoft Courts Management Training for Government

Dynamics Edge offers quality Microsoft Court Management Training for Justice Departments, Governments, and more. This helps you understand how to leverage MIcrosoft technology to modernize the justice systems. In the modern day we are starting to move courts away from legacy IT and paper-based procedures for civil, traffic, and criminal cases, to something more matching the new millenium. For example we can have virtual court rooms which enable secure, remote testimonies, which helps reduce travel costs and even increase safety. For example, when there are hearings conducted from prison facilities and jails, remote testimony can help make the courtroom feel more secure in many cases.

Click here to request more info on Microsoft Technology Training for Government – Courts Mangement

Microsoft Courts Management Training for Government

Digital records management systems presented in custom Microsoft Dynamics 365 Government Training modules empower you to know how court personnel can be allowed to access legal documents while preserving data security, as well as how to collaborate with other staff members in real time to get important daily tasks done. Microsoft Azure Government Training modules and deep advanced data analytics help justice staff and judges to start identifying the best and most successful programs such as ones designed for correction and rehabilitation. It also helps to facilitate more appropriate sentencing choices based on a variety of data gathered such as defendants with matches between certain data points. The digitization of key processes helps you reduce orphaned data while eliminating the costly physical transport and storage requirements for judicial case files. All of this enables very easy access to review files across the whole court system and all the related judicial departments. Moreover, Microsoft Office 365 Government Training modules and Microsoft Dynamics 365 Government Portals Training modules give court systems the power and technology to be more transparent about fee payment schedules and judicial proceedings.

Microsoft Office 365 Modern Retail Workplace Training

Choose Dynamics Edge for custom Microsoft Office 365 Modern Retail Workplace Training (click here now to request more information).

Microsoft Office 365 Modern Retail Workplace Training Dynamics Edge

Office 365 Modern Consumer Goods and Retail Workplace solution is designed to empower your own enterprise’s retail store management as well as employees and associates to start being proactive. This solution provides your enterprise with all of the collaboration tools needed to much better serve all of your retail customers and start shortening the long distances that may inherently be the case between headquarters and stores. You can now permit employees to start obtaining the newest, most up to date and relevant customer insights with simple access to file sharing and other keytools, and from any device such as mobile devices as well.

Retailers are transforming their enterprises with all of the solution benefits that the Microsoft Office 365 Modern Retail & Consumer Goods Workplace offers you.

  • Empower better flows of communication.
    Dynamics Edge’s Custom Office 365 for Retail Training and Solutions all help you start cultivating innovation enterprise-wide by lowering the large distances between your headquarters and stores. You do all of this while still enabling associates to share their local successes that can provide global insights or internationally valuable information.
  • Begin improving task and schedule management.
    When utilizing modern tools from Microsoft Office 365 Workplace Solution, you can power retail employee productivity. You can do this by improving all of how your associates update, manage, and create tasks and schedules in your systems.
  • Get security enhancements through better access and identity management tools.
    Digital identities and employee access (including access credentials) can be correctly managed in a more streamlined way with this Microsoft solution. Now this way you can ensure that your enterprise staff has the most accurate, newest information ready to go while at the same time ensuring the data access and security for your company policy and compliance.
  • Dynamics Edge may offer custom Office 365 Retail Training onboarding and training resources in addition to what Microsoft offers you.
    Integrating all of this info can enable you to ensure the implementation of best practices across your whole enterprise before, during and after implementation.

Microsoft Office 365 for Education School Data Sync Toolkit Teams Training

Microsoft School Data Sync (SDS) Teams Training for Microsoft Teams and Office 365 for Education, is available upon request click here to request quality Microsoft School Data Sync Training (Microsoft Teams for Education Training) now from Dynamics Edge

Microsoft School Data Sync Toolkit Office 365 Training Microsoft Teams Training Courses
Microsoft School Data Sync Toolkit Office 365 Training Microsoft Teams Training Courses

Microsoft School Data Sync or Microsoft SDS Training goes over this awesome free service in Office 365 for Education, that goes ahead and reads the roster and school data from a school’s Student Information System (SIS). What it also does is that it builds Office 365 Groups for SharePoint Online and Exchange Online, it builds class teams for OneNote Class notebooks and Microsoft Teams, and it builds school groups for Intune for Education. Also note that it takes care of Single Sign On (SSO) integration as well as rostering for 3rd party API’s (Application Programming Interfaces) and apps. There is important app integration scenarios that SDS actually allows you to do, such as:

  • Microsoft Teams for Education – SDS does enable the automatic Class Team building, which is based on the initial SDS-created Office 365 Rostering and Groups.
  • OneNote Class Notebooks – SDS does enable the automated OneNote Class Notebook provisioning within Microsoft Teams for Education itself. Each of the Class Notebooks upon enabling of this feature will have permissions and sections set and created. based upon the rostering data imported during the SDS synchronization.
  • SharePoint Online and Exchange Online  –SDS indeed creates Office 365 Groups for  collaboration, sharing of files, and messaging.
  • Skype for Business and SharePoint alternative. Much of the group conferencing features, voice and video calling, creen sharing, and more is available with Microsoft Teams, AND combine the sharing power of some of Microsoft SharePoint with Teams.
  • Intune for Education – SDS creates schools-based Security Groups for the very granular device policy management. Automated bulk licensing of Intune for Education is available for all synced teachers and students on the system
  • Teams Integration with 3rd Party Applications – SDS integrates with a large number of diverse apps within the Official Microsoft Store and also does enable the  Single Sign-On (SSO) app integration as well as rostering.

Boosting  IT productivity for teachers and admins, SIS empowers app partners, system integrators and vendors to personalize, differentiate, scale and tailor offerings for customers, audiences, and target clientele.

Teachers are Cool.
Teachers are cool, because they can spend a lot less time making manual  classes, manual rosters and becoming an IT manager by diagnosing apps that just don’t work. Instead, use that time to plan online resources and deliver amazing online and in person Microsoft Teams training lessons, for instance. Microsoft Teams facilitates the very simple creation of OneNote Class Notebooks, Teams, Office 365 Groups for  file sharing,  collaboration, online messaging, video chat, voice chat, IM, attachment sharing and more. Teachers can use Microsoft Teams School Data Sync Toolkit to integrate with many other education apps, offerings and software services.

School IT Administrators save time and money with Microsoft Teams School Data Sync Training.
School IT Administrators can save time by the bulk automation of online user and classroom creation, deployment and setup. They can make security simpler with a compliant and centralized data source for user rosters and profiles that all of the classroom members can utilize at any time. Microsoft Teams School Data Sync mirrors data from a school university or educational institution’s  student Information System (SIS) into Azure Active Directory and Office 365 and actually automate the full provisioning of student and teacher accounts as well as online classrooms.  SDS gives any classroom application the power to  to access encrypted cloud-based data via the free API endpoints.
App Partners have the ability to give end users and customers with a single sign on (SSO) to their applications that. SDS enables them to spend less time integrating with different SIS systems, and more time creating personalized experiences for teachers and students. The free API works properly with multiple different devices, OS (Operating Systems) and SIS (student information system) providers.

System integration specialists can save schools a lot of time by integrating their SIS with the Office 365 Training components. These  system integration, deployment and customization specialists can build import and export processes for each individual customer, or even write centralized cloud connectors. These connectors can scale across multiple school districts, which can contribute to helping schools keep class rosters and user profiles updated to the latest versions.

Make SIS Vendors Happy with SDS toolkit
As you probably know, a student information system (SIS), school administration software, student administration system or student management system, is a management information system for the purposed of education establishments (schools, universities and so on) like yours to create, edit, update, delete, or manage student information such as records, transcripts, grade records, report cards, enrollment records, certifications and more. SIS Vendors love Microsoft School Data Sync Toolkit since they can be happy with connecting more apps through a centralized and free of cost API or Application Programming Interface.
Easily and quickly give app partners key access to important student metrics and data, allowing SIS vendors to focus on other more important enterprise and organizational concerns like core organization and business differentiation, not so much going into app integration and the developer side of student information management.

Related topics:
School Data Sync Overview
Deploying School Data Sync with OneRoster CSV files
Deploying School Data Sync with CSV files
Planning School Data Sync
Deploying School Data Sync with Clever File Format
Deploying School Data Sync with Powerschool API
Deploying School Data Sync with OneRoster API

Office 365 Banker Productivity and Collaboration Training and Licensing

Ever wonder what is the difference between Office 365 k1 vs e1 or other licensing questions like that? Dynamics Edge can help you with this question and more. We’ll give you an overview in this article, but this is just a general overview you really should call us at (800) 453-5961 to get a clearer idea. We are not responsible for accuracy of this article, use this article just for a generic overview – Microsoft changes licensing policies often – call us for more detailed info with your specific requirements.

Office 365 Banker Productivity and Collaboration Training Dynamics Edge
Office 365 Banker Productivity and Collaboration Training and Licensing call (800) 453-5961 for more info – Dynamics Edge

We also can help you with Dynamics 365 Finance and Operations, Sales and more. We have a full suite of Microsoft Banker Productivity and Collaboration training solutions, software solutions, licensing solutions, and more. Here’s an overview of what we offer with our Office 365 training licensing and consulting by Dynamics Edge. With Dynamics Edge you can learn how to improve task and schedule management. Modern Microsoft tools help you improve how you update, create, associate, and manage tasks as well as schedules. You can access on-boarding and training resources that permit you to implement best practices across your entire enterprise while boosting banker or employee morale and engagement flow. Secure access and identity management through managing employee access and digital identities. Make sure your bank staff always has the most accurate information needed to make decisions while ensuring the integrity and security of your data. Boost communication flow by cultivating innovative connections across your enterprises. Enable all your associates to share successes in sales, operations or elsewhere to provide global insights on your current performance.

Here’s some more introductory info on Office 365 K1 vs E1 licensing, but please contact us for a more in depth assessment and to help you and your enterprise more with this because Office 365 Licensing is complex.

Online Office
Edit or create Excel, OneNote, Word, or PowerPoint files online. K1 and E1 both have this.

Calendars and Email
Utilize enterprise grade email via familiar and rich Outlook experiences. You can access these UX experiences from your web browser (OWA) or desktop.
The login for OWA is usually https://outlook.office.com/owa/ or portal.office.com – or contact us for more help. Both the K1 and E1 plan has this available.

Online SharePoint
Online SharePoint sites access, which helps you to get news and updates.

Both the K1 and E1 plan have SharePoint online.

File Sharing and Storage is only available in the E1 plan, not the K1 plan, when comparing E1 and K1 side by side.
In this module you get OneDrive for Business included, which gives your enterprise users their own personal storage in the Microsoft cloud that can be accessed
from anywhere on the internet, or granular access only to specific people in the organization.
You can also share documents easily with others outside as well as inside your own enterprise or organization and also have very granular control related to who can edit or access each file, such as read only access, no access, and so on. When looking for Microsoft Office 365 k1 vs e1, know that only the E1 plan comes with Microsoft OneDrive for Business, consider this along with many factors when choosing the right Office 365 Volume Licensing plan for you.

When comparing Office 365 E1 vs K1, only the E1 plan, not the K1 plan, comes with Online Meetings, Video Calls, Instant Messaging (Skype for Business).
Your enterprise users can make connections with Skype for Business folks within the entire enterprise social network.
People can communicate via video, instant message, voice calls, and more such as online meetings and so on. Share your own presence (presence means are you Offline, Online, Busy, In a Meeting, Away? – > and so on) with other users. You get to instant message people, video and audio call a person, have audio or video conference with multiple people, and more with Office 365 Skype for Business.

Add-MailboxFolderPermission Office 365 Calendar Permissions PowerShell Training to Add Edit Delete Permissions

This Add-MailboxFolderPermission Office 365 PowerShell Training commandlet (cmdlet) guide is now available in these training courses. For on-premises Exchange and in the cloud-based service, know that some settings as well as paremeters, may actually be distinct to a single environment in the system. You should now utilize the Add-MailboxFolderPermission commandlet in order to add the folder-level permissions for many users in mailboxes here.

Office 365 PowerShell ISE Training including how to add edit remove calendar permissions
Office 365 PowerShell ISE Training including how to add edit remove calendar permissions

(source)
Add-MailboxFolderPermission
Description
To modify the permissions that are assigned to the user on a mailbox folder, use the Set-MailboxFolderPermission cmdlet. To remove all permissions that are assigned to a user on a mailbox folder, use the Remove-MailboxFolderPermission cmdlet.
You need to be assigned permissions before you can run this cmdlet. Although this topic lists all parameters for the cmdlet, you may not have access to some parameters if they’re not included in the permissions assigned to you. To find the permissions required to run any cmdlet or parameter in your organization, see Find the permissions required to run any Exchange cmdlet (https://technet.microsoft.com/library/mt432940.aspx).
Examples
————————– Example 1 ————————–
PowerShell

Copy
Add-MailboxFolderPermission -Identity ayla@contoso.com:\Marketing -User ed@contoso.com -AccessRights Owner
This example grants the Owner role to Ed on the Marketing folder in Ayla’s mailbox.
————————– Example 2 ————————–
PowerShell

Copy
Add-MailboxFolderPermission -Identity ayla@contoso.com:\Calendar -User julia@contoso.com -AccessRights Editor -SharingPermissionFlags Delegate
In Office 365, this example adds Julia as a calendar delegate to Ayla’s mailbox, but without access to private items.
————————– Example 3 ————————–
PowerShell

Copy
Add-MailboxFolderPermission -Identity ayla@contoso.com:\Calendar -User laura@contoso.com -AccessRights Editor -SharingPermissionFlags Delegate,CanViewPrivateItems
In Office 365, this example adds Laura as a calendar delegate to Ayla’s mailbox with access to private items.
Required Parameters
-AccessRights
The AccessRights parameter specifies the permissions that you want to add for the user on the mailbox folder.
You can specify individual folder permissions or roles, which are combinations of permissions. You can specify multiple permissions and roles separated by commas.
The following individual permissions are available:
CreateItems: The user can create items within the specified folder.
CreateSubfolders: The user can create subfolders in the specified folder.
DeleteAllItems: The user can delete all items in the specified folder.
DeleteOwnedItems: The user can only delete items that they created from the specified folder.
EditAllItems: The user can edit all items in the specified folder.
EditOwnedItems: The user can only edit items that they created in the specified folder.
FolderContact: The user is the contact for the specified public folder.
FolderOwner: The user is the owner of the specified folder. The user can view the folder, move the folder and create subfolders. The user can’t read items, edit items, delete items or create items.
FolderVisible: The user can view the specified folder, but can’t read or edit items within the specified public folder.
ReadItems: The user can read items within the specified folder.
The roles that are available, along with the permissions that they assign, are described in the following list:
Author: CreateItems, DeleteOwnedItems, EditOwnedItems, FolderVisible, ReadItems
Contributor: CreateItems, FolderVisible
Editor: CreateItems, DeleteAllItems, DeleteOwnedItems, EditAllItems, EditOwnedItems, FolderVisible, ReadItems
None: FolderVisible
NonEditingAuthor: CreateItems, FolderVisible, ReadItems
Owner: CreateItems, CreateSubfolders, DeleteAllItems, DeleteOwnedItems, EditAllItems, EditOwnedItems, FolderContact, FolderOwner, FolderVisible, ReadItems
PublishingEditor: CreateItems, CreateSubfolders, DeleteAllItems, DeleteOwnedItems, EditAllItems, EditOwnedItems, FolderVisible, ReadItems
PublishingAuthor: CreateItems, CreateSubfolders, DeleteOwnedItems, EditOwnedItems, FolderVisible, ReadItems
Reviewer: FolderVisible, ReadItems
The following roles apply specifically to calendar folders:
AvailabilityOnly: View only availability data
LimitedDetails: View availability data with subject and location
Type: MailboxFolderAccessRight[]
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Online
-Identity
The Identity parameter specifies the target mailbox and folder. The syntax is :\. For the value of , you can use any value that uniquely identifies the mailbox.
For example:
Name
Display name
Alias
Distinguished name (DN)
Canonical DN
\
Email address
GUID
LegacyExchangeDN
SamAccountName
Module:
exchange
Applies to:
Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Online
This cmdlet is available in on-premises Exchange and in the cloud-based service. Some parameters and settings may be exclusive to one environment or the other. Use the Add-MailboxFolderPermission cmdlet to add folder-level permissions for users in mailboxes. For information about the parameter sets in the Syntax section below, see Exchange cmdlet syntax (https://technet.microsoft.com/library/bb123552.aspx).
Syntax
PowerShell
tinguished name (DN)
Canonical DN
Email address
GUID
Type: MailboxFolderUserIdParameter
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Online
Optional Parameters
-Confirm
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.
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.
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.
Type: SwitchParameter
Aliases: cf
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Online
-DomainController
This parameter is available only in on-premises Exchange.
The DomainController parameter specifies the domain controller that’s used by this cmdlet to read data from or write data to Active Directory. You identify the domain controller by its fully qualified domain name (FQDN). For example, dc01.contoso.com.
Type: Fqdn
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Exchange Server 2010, Exchange Server 2013, Exchange Server 2016
-SendNotificationToUser
This parameter is available only in the cloud-based service.
The SendNotificationToUser parameter specifies whether to send a sharing invitation to the user when you add calendar permissions for them. The message will be a normal calendar sharing invitation that can be accepted by the recipient. Valid values are:
$true: A sharing invitation is sent.
$false: No sharing invitation is sent. This is the default value.
This parameter only applies to calendar folders and can only be used with the following AccessRights parameter values:
AvailabilityOnly
LimitedDetails
Reviewer
Editor
Copy
Add-MailboxFolderPermission
[-Identity]
-AccessRights
-User
[-Confirm]
[-DomainController ]
[-WhatIf]
[-SendNotificationToUser <$true | $false>]
[-SharingPermissionFlags ]
[]

User ID or user principal name (UPN)
Example values for the Identity parameter are john@contoso.com:\Calendar or John:\Marketing\Reports.
Type: MailboxFolderIdParameter
Position: 1
Default value: None
Accept pipeline input: True
Accept wildcard characters: False
Applies to: Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Online
-User
The User parameter specifies who’s granted permission to the mailbox folder. Valid values are mail-enabled security principals (mail-enabled accounts or groups that have security identifiers or SIDs that can have permissions assigned to them). For example:
User mailboxes
Mail users
Mail-enabled security groups
You can use any value that uniquely identifies the user or group.
For example:
Name
Display name
Alias
Dis
Type: $true | $false
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Exchange Online
-SharingPermissionFlags
This parameter is available only in the cloud-based service.
The SharingPermissionFlags parameter assigns calendar delegate permissions. This parameter only applies to calendar folders and can only be used when the AccessRights parameter value is Editor. Valid values are:
None: Has no effect. This is the default value.
Delegate: The user is made a calendar delegate, which includes receiving meeting invites and responses. If there are no other delegates, this value will create the meeting message rule. If there are existing delegates, the user is added to the meeting message rule without changing how delegate messages are sent.
CanViewPrivateItems: The user can access private items on the calendar. You must use this value with the Delegate value.
You can specify multiple values separated by commas.
Type: None | Delegate | CanViewPrivateItems
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Exchange Online
-WhatIf
The WhatIf switch simulates the actions of the command. You can use this switch to view the changes that would occur without actually applying those changes. You don’t need to specify a value with this switch.
Type: SwitchParameter
Aliases: wi
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Online
Inputs
To see the input types that this cmdlet accepts, see Cmdlet Input and Output Types (https://go.microsoft.com/fwlink/p/?LinkId=616387). If the Input Type field for a cmdlet is blank, the cmdlet doesn’t accept input data.
Outputs
To see the return types, which are also known as output types, that this cmdlet accepts, see Cmdlet Input and Output Types (https://go.microsoft.com/fwlink/p/?LinkId=616387). If the Output Type field is blank, the cmdlet doesn’t return data.
Related Links
Online Version