adamchilcott icon

DKIM.ps1

adamchilcott | PRO | 01/13/19 07:34:37 PM UTC | 0 ⭐ | 1161 👁️ | Never ⏰ | []
PowerShell |

41.95 KB

|

None

|

0 👍

/

0 👎

 
 
#------------------------------------------------------------------------------
# THIS CODE AND ANY ASSOCIATED INFORMATION ARE PROVIDED “AS IS” WITHOUT
# WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
# LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS
# FOR A PARTICULAR PURPOSE. THE ENTIRE RISK OF USE, INABILITY TO USE, OR 
# RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.
#
#------------------------------------------------------------------------------
# Author: Eyal Doron 
# Version: 1.2 
# Last Modified Date: 19/12/2017  
# Last Modified By: [email protected]
# Web site: o365info.com
# Article name: Get the value of the DKIM record for a Domain, using PowerShell | Office 365 | Part 7#10
# Article URL: http://o365info.com/get-the-value-of-the-dkim-record-for-a-domain-using-powershell-office-365-part-7-10/
# sn -AA0016789DFSdAVXDSXCV
#------------------------------------------------------------------------------
# Hope that you enjoy it ! 
# And, may the force of PowerShell will be with you  :-)
# ------------------------------------------------------------------------------
 
#------------------------------------------------------------------------------
# PowerShell Functions
#------------------------------------------------------------------------------
 
function checkConnection ()
{
        $a = Get-PSSession
        if ($a.ConfigurationName -ne "Microsoft.Exchange")
        {
            
            write-host     'You are not connected to Exchange Online PowerShell ;-(         ' 
            write-host      'Please connect using the Menu option 1) Login to Office 365 + Exchange Online using Remote PowerShell        '
            #Read-Host "Press Enter to continue..."
            Add-Type -AssemblyName System.Windows.Forms
            [System.Windows.Forms.MessageBox]::Show("You are not connected to Exchange Online PowerShell ;-( `nSelect menu 1 to connect `nPress OK to continue...", "o365info.com PowerShell script", [System.Windows.Forms.MessageBoxButtons]::OK, [System.Windows.Forms.MessageBoxIcon]::Warning)
            Clear-Host
            break
        }
}
 
 
 
Function Disconnect-ExchangeOnline {Get-PSSession | Where-Object {$_.ConfigurationName -eq "Microsoft.Exchange"} | Remove-PSSession}
 
 
Function Set-AlternatingRows {
       <#
       
       #>
    [CmdletBinding()]
       Param(
             [Parameter(Mandatory=$True,ValueFromPipeline=$True)]
        [string]$Line,
       
           [Parameter(Mandatory=$True)]
             [string]$CSSEvenClass,
       
        [Parameter(Mandatory=$True)]
           [string]$CSSOddClass
       )
       Begin {
             $ClassName = $CSSEvenClass
       }
       Process {
             If ($Line.Contains("<tr>"))
             {      $Line = $Line.Replace("<tr>","<tr class=""$ClassName"">")
                    If ($ClassName -eq $CSSEvenClass)
                    {      $ClassName = $CSSOddClass
                    }
                    Else
                    {      $ClassName = $CSSEvenClass
                    }
             }
             Return $Line
       }
}
 
 
 
 
#------------------------------------------------------------------------------
# Genral
#------------------------------------------------------------------------------
$FormatEnumerationLimit = -1
$Date = Get-Date
$Datef = Get-Date -Format "\Da\te dd-MM-yyyy \Ti\me H-mm" 
#------------------------------------------------------------------------------
# PowerShell console window Style
#------------------------------------------------------------------------------
 
$pshost = get-host
$pswindow = $pshost.ui.rawui
 
    $newsize = $pswindow.buffersize
    
    if($newsize.height){
        $newsize.height = 3000
        $newsize.width = 150
        $pswindow.buffersize = $newsize
    }
 
    $newsize = $pswindow.windowsize
    if($newsize.height){
        $newsize.height = 50
        $newsize.width = 150
        $pswindow.windowsize = $newsize
    }
 
#------------------------------------------------------------------------------
# HTML Style start 
#------------------------------------------------------------------------------
$Header = @"
<style>
Body{font-family:segoe ui,arial;color:black; }
 
H1 {font-size: 26px; font-weight:bold;width: 70% text-transform: uppercase; color: #0000A0; background:#2F5496 ; color: #ffffff; padding: 10px 10px 10px 10px ; border: 3px solid #00B0F0;}
H2{ background:#F2F2F2 ; padding: 10px 10px 10px 10px ; color: #013366; margin-top:35px;margin-bottom:25px;font-size: 22px;padding:5px 15px 5px 10px; }
 
.TextStyle {font-size: 26px; font-weight:bold ; color:black; }
 
TABLE {border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}
TH {border-width: 1px;padding: 5px;border-style: solid;border-color: #d1d3d4;background-color:#0072c6 ;color:white;}
TD {border-width: 1px;padding: 3px;border-style: solid;border-color: black;}
 
.odd  { background-color:#ffffff; }
.even { background-color:#dddddd; }
 
 
 
.note0
{width: 50%;padding:15px 15px 15px 15px;font-size: 1.1em;margin-top:15px;margin-bottom:45px;border-top: 3px dashed #2F5496;border-bottom: 3px dashed #2F5496;background: #F2F2F2;line-height: 1.6;
}
 
 
.o365info {height: 90px;padding-top:5px;padding-bottom:5px;margin-top:20px;margin-bottom:20px;border-top: 3px dashed #002060;border-bottom: 3px dashed #002060;background: #00CCFF;font-size: 120%;font-weight:bold;background:#00CCFF url(http://o365info.com/wp-content/files/PowerShell-Images/o365info120.png) no-repeat 680px -5px;
}
 
</style>
 
"@
 
$EndReport = "<div class=o365info>  This report was created by using <a href= http://o365info.com target=_blank>o365info.com</a> PowerShell script </div>"
 
 
#-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
 
 
 
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Exchange Online DKIM Settings PowerShell - Script menu
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
$Loop = $true
While ($Loop)
{
    write-host 
    write-host +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    write-host   "Exchange Online DKIM Settings PowerShell - Script menu"
    write-host +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    write-host
    write-host -ForegroundColor white  '----------------------------------------------------------------------------------------------' 
    write-host -ForegroundColor white  -BackgroundColor DarkCyan     'Connect Exchange Online using Remote PowerShell        ' 
    write-host -ForegroundColor white  '----------------------------------------------------------------------------------------------' 
    write-host -ForegroundColor Yellow ' 1) Login to Exchange Online using Remote PowerShell ' 
    write-host
    write-host -ForegroundColor green '----------------------------------------------------------------------------------------------' 
    write-host -ForegroundColor white  -BackgroundColor DarkGreen   'SECTION A: View and Export information about DKIM DNS records settings      ' 
    write-host -ForegroundColor green '----------------------------------------------------------------------------------------------' 
    write-host                                              ' 2) View and Export information about the DKIM CNAME record synatx for a specific Domain name '
    write-host                                              ' 3) View and Export information about the DKIM CNAME record synatx for a All Domain names '
    write-host -ForegroundColor green  '----------------------------------------------------------------------------------------------' 
    write-host -ForegroundColor white  -BackgroundColor DarkRed   'SECTION B: Disable DKIM signing policy  ' 
    write-host -ForegroundColor green  '----------------------------------------------------------------------------------------------' 
    write-host                                              ' 4) Disable the DKIM signing policy for a specific Domain name '
    write-host -ForegroundColor green  '----------------------------------------------------------------------------------------------' 
    write-host -ForegroundColor white  -BackgroundColor Blue   'SECTION C: Enable DKIM signing policy  ' 
    write-host -ForegroundColor green  '----------------------------------------------------------------------------------------------' 
    write-host                                              ' 5) Enable the DKIM signing policy for a specific Domain name  '
    write-host -ForegroundColor green  '----------------------------------------------------------------------------------------------' 
    write-host -ForegroundColor white  -BackgroundColor Blue   'SECTION D: Create DKIM selectors configuration in Exchange Online   ' 
    write-host -ForegroundColor green  '----------------------------------------------------------------------------------------------' 
    write-host                                              ' 6) Enable the DKIM signing policy for a specific Domain name  '
    write-host -ForegroundColor green  '----------------------------------------------------------------------------------------------' 
 
    write-host -ForegroundColor white  -BackgroundColor DarkCyan 'End of PowerShell - Script menu ' 
    write-host -ForegroundColor green  '----------------------------------------------------------------------------------------------' 
    write-host -ForegroundColor Yellow            "20)  Disconnect PowerShell session" 
    write-host
    write-host -ForegroundColor Yellow            "21) Exit the PowerShell script menu (Or use the keyboard combination - CTRL + C)" 
    write-host
 
    $opt = Read-Host "Select an option [1-21]"
    write-host $opt
    switch ($opt) 
 
 
{
 
 
 
#===============================================================================================================
# Step -00 | Connect to Windows Azure Active Directory  & Exchange Online using Remote PowerShell
#===============================================================================================================
 
        
 
    
1
{
 
#####################################################################
# Connect Exchange Online using Remote PowerShell
#####################################################################
 
# information 
clear-host
 
write-host
write-host
write-host  -ForegroundColor Magenta    oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo                                         
write-host  -ForegroundColor white      Information                                                                                          
write-host  -ForegroundColor white      ------------------------------------------------------------------------------------------                                                                
write-host  -ForegroundColor white      'To be able to use the PowerShell menus in the script,  '
write-host  -ForegroundColor white      'you will need to Login to Exchange Online using Remote PowerShell. '
write-host  -ForegroundColor white      'In the credentials windows that appear,   '
write-host  -ForegroundColor white      'provide your Office 365 Global Administrator credentials.  '
write-host  -ForegroundColor white      ------------------------------------------------------------------------------------------  
write-host  -ForegroundColor white      'The PowerShell command that we use is: '
write-host  -ForegroundColor Cyan       '$UserCredential = Get-Credential '
write-host  -ForegroundColor Cyan       '$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection '
write-host  -ForegroundColor Cyan       'Import-PSSession $Session '
write-host
write-host  -ForegroundColor Magenta    oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo                                          
write-host
write-host
 
Disconnect-ExchangeOnline 
# Specify your administrative user credentials on the line below 
 
$user = “Provide credentials”
 
$UserCredential = Get-Credential -Credential $user
 
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
 
Import-PSSession $Session
 
#------------------------------------------------------------------------------
# Object Properties Array 
#------------------------------------------------------------------------------
# DKIM Domain name properties 
$global:Array1  = "Domain","Enabled"
 
$global:Array2  = "Domain","Selector1CNAME","Selector2CNAME"
 
}
 
 
        
 
#=========================================================================================
# SECTION A: View and Export information about DKIM DNS records settings
#=========================================================================================
 
 
2
{
 
##########################################################################
# View and Export information about the DKIM CNAME record synatx for a specific Domain name
##########################################################################
 
# information 
checkConnection
 
clear-host
 
write-host
write-host
write-host  -ForegroundColor Magenta    oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo                                              
write-host  -ForegroundColor white      Introduction                                                                                          
write-host  -ForegroundColor white      --------------------------------------------------------------------------------------                                                              
write-host  -ForegroundColor white      'This option will:  '
write-host  -ForegroundColor white      'View and Export information about the DKIM CNAME record synatx for a specific Domain name '
write-host  -ForegroundColor white      --------------------------------------------------------------------------------------  
write-host  -ForegroundColor white      'The export command will:   '
write-host  -ForegroundColor white      '1. Export the required information to the following path =>' -NoNewline;Write-Host ' C:\INFO\DKIM Record settings  ' -ForegroundColor Cyan  
write-host  -ForegroundColor white      '2. Save all of the exported information to diffrent file formats: TXT and HTML. '
write-host  -ForegroundColor white      'Note - Be patient, the operation can take a long time. '
write-host  -ForegroundColor white      ------------------------------------------------------------------------------------------  
write-host  -ForegroundColor white      'The PowerShell command that we use is: '
write-host  -ForegroundColor Cyan       'Get-DkimSigningConfig <Domain name> | FL *CNAME '
write-host  -ForegroundColor Magenta    oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo                                         
write-host
 
# User input    
 
write-host -ForegroundColor white   'User input '
write-host -ForegroundColor white   ---------------------------------------------------------------------------- 
write-host -ForegroundColor Yellow  "You will need to provide 1 parameter:"  
write-host
write-host -ForegroundColor Yellow  "1.  Doamin name"  
write-host -ForegroundColor Yellow  "This is the name of the Domain for which you asking to get Information about DKIM DNS record syntax"   
write-host -ForegroundColor Yellow  "For example:  o365info.com"
write-host
$Domain  = Read-Host "Type the The Doamin name "
write-host
write-host
 
 
$DKIMSelector = Get-DkimSigningConfig $Domain 
$DKIMSelector.Selector1CNAME
$DKIMSelector.Selector2CNAME
 
$SelectorA = $DKIMSelector.Selector1CNAME
$SelectorB = $DKIMSelector.Selector2CNAME
                    
$Selector1 = 
"<div class=note0>
1. The first part (the top part) of the CNAME record is:
<div class='TextStyle'> Selector1._domainkey </div>
 
</br>
 
2. The second part of the CNAME record is:
<div class='TextStyle'> $SelectorA </div>
</br>
<img src='http://o365info.com/wp-content/gallery/get-the-value-of-the-dkim-record-for-a-domain-using-powershell-office-365-part-7-10/Creating-CNAME-record-for-DKIM-in-Office-365-Selector1.domainkey-01-1.jpg'/>
 
</div>"
 
 
$Selector2 = "<div class=note0>
1. The first part (the top part) of the CNAME record is:
<div class='TextStyle'> Selector2._domainkey </div>
</br>
 
2. The second part of the CNAME record is:
 
 
<div class='TextStyle'> $SelectorB </div>
 
 
</br>
<img src='http://o365info.com/wp-content/gallery/get-the-value-of-the-dkim-record-for-a-domain-using-powershell-office-365-part-7-10/Creating-CNAME-record-for-DKIM-in-Office-365-Selector2.domainkey-02.jpg' />
 
</div>"
 
 
# Display Information about Audit settings
 
write-host
write-host -------------------------------------------------------------------------------------------------
write-host -ForegroundColor white  -BackgroundColor Blue   Display information about DKIM host names: "$Domain".ToUpper() 
write-host -------------------------------------------------------------------------------------------------
Get-DkimSigningConfig $Domain | Select-Object  $global:Array2     | Out-String
write-host -------------------------------------------------------------------------------------------------
 
write-host
write-host  -ForegroundColor Magenta    oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo                                              
write-host  -ForegroundColor white      Introduction                                                                                          
write-host  -ForegroundColor white      --------------------------------------------------------------------------------------                                                              
write-host  -ForegroundColor white      'To be able to create the required DNS records for your Office 365 DKIM implementation '
write-host  -ForegroundColor white      'for the domain name $Domain   '
write-host  -ForegroundColor white      'You will need to create 2 CNAME records.'
write-host  -ForegroundColor white      'The syntax of the 2 CNAME records is: '
write-host  -ForegroundColor Magenta    oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo                                         
write-host
 
write-host
write-host -------------------------------------------------------------------------------------------------
write-host -ForegroundColor white  -BackgroundColor Blue   CNAME record 1 -  "$Domain".ToUpper() 
write-host -------------------------------------------------------------------------------------------------
write-host  -ForegroundColor white      'The first part (the “top” part) of the CNAME record is:'
write-host  -ForegroundColor Yellow     'Selector1._domainkey   '
write-host  
write-host  -ForegroundColor white      'The second part of the CNAME record is:'
write-host  -ForegroundColor Yellow     $DKIMSelector.Selector1CNAME  
write-host -------------------------------------------------------------------------------------------------
 
write-host
write-host -------------------------------------------------------------------------------------------------
write-host -ForegroundColor white  -BackgroundColor Blue   CNAME record 2 -  "$Domain".ToUpper() 
write-host -------------------------------------------------------------------------------------------------
write-host  -ForegroundColor white      'The first part (the “top” part) of the CNAME record is:'
write-host  -ForegroundColor Yellow     'Selector1._domainkey   '
write-host  
write-host  -ForegroundColor white      'The second part of the CNAME record is:'
write-host  -ForegroundColor Yellow     $DKIMSelector.Selector2CNAME   
write-host -------------------------------------------------------------------------------------------------
 
 
#---------------------------------------------------------------------------------------------------
# Create folders Structure that contain the exported information to TXT and HTML files
#---------------------------------------------------------------------------------------------------
 
$A20 =    "C:\INFO\DKIM Record settings"
 
#---------------------------------------------------------------------------------------------------
# Create the required folders in Drive C:
#---------------------------------------------------------------------------------------------------
 
write-host  -ForegroundColor white      'Creating folder structure for storing information on C:\INFO\DKIM Record settings '    
 
if (!(Test-Path -path $A20))
{New-Item $A20 -type directory}
 
#---------------------------------------------------------------------------------------------------
# Export xxx to a files 
#---------------------------------------------------------------------------------------------------
 
write-host -ForegroundColor green  'Export  DKIM informaiton to a files - File Format - HTML + TEXT' 
write-host
 
###TXT####
Get-DkimSigningConfig $Domain | Format-list *CNAME | Out-File $A20\"information about the DKIM host name record for $Domain.txt" -Encoding utf8
##########
 
###HTML####
Get-DkimSigningConfig $Domain | Select-Object   Domain,Selector1CNAME,Selector2CNAME | ConvertTo-Html -head $Header -Body  "<H1>information about the DKIM host name record for $Domain   |  $Datef </H1>"  | Set-AlternatingRows -CSSEvenClass even -CSSOddClass odd | Out-File $A20\"information about the DKIM host name record for $Domain.htm"
Add-Content $A20\"information about the DKIM host name record for $Domain.htm" $Selector1
Add-Content $A20\"information about the DKIM host name record for $Domain.htm" $Selector2
Add-Content $A20\"information about the DKIM host name record for $Domain.htm" $EndReport
##########
#---------------------------------------------------------------------------------------------------
 
 
# End the Command
write-host
write-host
Read-Host "Press Enter to continue..."
write-host
write-host
 
}
 
 
 
3
{
 
##########################################################################
# View and Export information about the DKIM CNAME record synatx for a All Domain names
##########################################################################
 
# information 
checkConnection
 
clear-host
 
write-host
write-host
write-host  -ForegroundColor Magenta    oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo                                              
write-host  -ForegroundColor white      Introduction                                                                                          
write-host  -ForegroundColor white      --------------------------------------------------------------------------------------                                                              
write-host  -ForegroundColor white      'This option will:  '
write-host  -ForegroundColor white      'View and Export information about the DKIM CNAME record synatx for a All Domain names  '
write-host  -ForegroundColor white      --------------------------------------------------------------------------------------  
write-host  -ForegroundColor white      'The export command will:   '
write-host  -ForegroundColor white      '1. Export the required information to the following path =>' -NoNewline;Write-Host ' C:\INFO\DKIM Record settings  ' -ForegroundColor Cyan  
write-host  -ForegroundColor white      '2. Save all of the exported information to diffrent file formats: TXT and HTML. '
write-host  -ForegroundColor white      'Note - Be patient, the operation can take a long time. '
write-host  -ForegroundColor white      ------------------------------------------------------------------------------------------  
write-host  -ForegroundColor white      'The PowerShell command that we use is: '
write-host  -ForegroundColor Cyan       'Get-DkimSigningConfig | FL  Domain,Selector1CNAME,Selector2CNAME    '
write-host  -ForegroundColor Magenta    oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo                                         
write-host
 
# Display Information about Audit settings
 
write-host
write-host -------------------------------------------------------------------------------------------------
write-host -ForegroundColor white  -BackgroundColor Blue   Display information about DKIM host names: "$Domain".ToUpper() 
write-host -------------------------------------------------------------------------------------------------
Get-DkimSigningConfig | Select-Object  $global:Array2 | Out-String
write-host -------------------------------------------------------------------------------------------------
 
#---------------------------------------------------------------------------------------------------
# Create folders Structure that contain the exported information to TXT and HTML files
#---------------------------------------------------------------------------------------------------
 
$A20 =    "C:\INFO\DKIM Record settings"
 
#---------------------------------------------------------------------------------------------------
# Create the required folders in Drive C:
#---------------------------------------------------------------------------------------------------
 
write-host  -ForegroundColor white      'Creating folder structure for storing information on C:\INFO\DKIM\All Domains '    
 
if (!(Test-Path -path $A20))
{
New-Item $A20 -type directory
}
 
#---------------------------------------------------------------------------------------------------
# Export Information about DKIM DNS record syntax to files
#---------------------------------------------------------------------------------------------------
 
write-host -ForegroundColor green  'Export  DKIM informaiton to a files - File Format - HTML + TEXT' 
write-host
 
###TXT####
Get-DkimSigningConfig | Format-List *CNAME | Out-File $A20\"Information about the DKIM host name record for for ALL Domain names.txt" -Encoding utf8
##########
 
###HTML####
Get-DkimSigningConfig |  Select-Object  $global:Array2 | ConvertTo-Html -post $EndReport -head $Header -Body  "<H1>Information about the DKIM host name record for for ALL Domain names  |  $Datef </H1>"  | Set-AlternatingRows -CSSEvenClass even -CSSOddClass odd | Out-File $A20\"Information about the DKIM host name record for for ALL Domain names.htm"
##########
 
#---------------------------------------------------------------------------------------------------
 
 
 
 
#---------------------------------------------------------------------------------------------------
#
#---------------------------------------------------------------------------------------------------
 
###TXT####
Get-DkimSigningConfig | Format-List *CNAME | Out-File $A20\"Get-DkimSigningConfig for ALL Domain names.txt" -Encoding utf8
##########
 
###HTML####
Get-DkimSigningConfig | ConvertTo-Html -post $EndReport -head $Header -Body  "<H1>Get-DkimSigningConfig for ALL Domain names   |  $Datef </H1>"  | Set-AlternatingRows -CSSEvenClass even -CSSOddClass odd | Out-File $A20\"Get-DkimSigningConfig for ALL Domain names.htm"
##########
 
#---------------------------------------------------------------------------------------------------
 
 
#Section 5: End the Command
write-host
write-host
Read-Host "Press Enter to continue..."
write-host
write-host
 
}
 
 
#=========================================================================================
# SECTION B:  Disable DKIM signing policy
#=========================================================================================
 
4
{
 
##########################################################################
# Disable the DKIM signing policy for a specific Domain name 
##########################################################################
 
# information 
checkConnection
 
clear-host
 
write-host
write-host
write-host  -ForegroundColor Magenta    oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo                                              
write-host  -ForegroundColor white      Introduction                                                                                          
write-host  -ForegroundColor white      --------------------------------------------------------------------------------------                                                              
write-host  -ForegroundColor white      'This option will:  '
write-host  -ForegroundColor white      'Disable the DKIM signing policy for a specific Domain name'
write-host  -ForegroundColor white      ------------------------------------------------------------------------------------------  
write-host  -ForegroundColor white      'The PowerShell command that we use is: '
write-host  -ForegroundColor Cyan       'Set-DkimSigningConfig -Identity <Domain name> -Enabled $False '
write-host  -ForegroundColor Magenta    oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo                                         
write-host
 
 
# Display Information about DKIM settings for each existing Domain 
 
write-host
write-host -------------------------------------------------------------------------------------------------
write-host -ForegroundColor white  -BackgroundColor Blue   Display Information about DKIM settings for each existing Domain
write-host -------------------------------------------------------------------------------------------------
Get-DkimSigningConfig | Format-List  Domain  | Out-String
write-host -------------------------------------------------------------------------------------------------
 
 
 
# User input    
 
write-host -ForegroundColor white   'User input '
write-host -ForegroundColor white   ---------------------------------------------------------------------------- 
write-host -ForegroundColor Yellow  "You will need to provide 1 parameter:"  
write-host
write-host -ForegroundColor Yellow  "1.  Doamin name" 
write-host -ForegroundColor Yellow  "This is the name of the Domain for which you asking to Disable DKIM signature"   
write-host -ForegroundColor Yellow  "For example:  o365info.com"
write-host
$Domain  = Read-Host "Type the The Doamin name "
write-host
write-host
 
# Display Information about DKIM settings for Specific Domain name  |=> BEFORE the update 
 
write-host
write-host -------------------------------------------------------------------------------------------------
write-host -ForegroundColor white  -BackgroundColor Blue   Display information about: "$Domain".ToUpper() policy => BEFORE the update 
write-host -------------------------------------------------------------------------------------------------
Get-DkimSigningConfig $Domain | Select-Object  $global:Array1  | Out-String
write-host -------------------------------------------------------------------------------------------------
 
# PowerShell Command
 
Set-DkimSigningConfig -Identity $Domain -Enabled $False
 
# Display Information about DKIM settings for Specific Domain name | => AFTER the update 
 
write-host
write-host -------------------------------------------------------------------------------------------------
write-host -ForegroundColor white  -BackgroundColor Blue   Display information about: "$Domain".ToUpper() policy => AFTER the update 
write-host -------------------------------------------------------------------------------------------------
Get-DkimSigningConfig $Domain | Select-Object  $global:Array1  | Out-String
write-host -------------------------------------------------------------------------------------------------
 
#Section 5: End the Command
write-host
write-host
Read-Host "Press Enter to continue..."
write-host
write-host
 
}
 
 
 
#=========================================================================================
# SECTION C:  Enable DKIM signing policy
#=========================================================================================
 
5
{
 
##########################################################################
# Enable the DKIM signing policy for a specific Domain name
##########################################################################
 
# information 
checkConnection
 
clear-host
 
write-host
write-host
write-host  -ForegroundColor Magenta    oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo                                              
write-host  -ForegroundColor white      Introduction                                                                                          
write-host  -ForegroundColor white      --------------------------------------------------------------------------------------                                                              
write-host  -ForegroundColor white      'This option will:  '
write-host  -ForegroundColor white      'Enable the DKIM signing policy for a specific Domain name '
write-host  -ForegroundColor white      ------------------------------------------------------------------------------------------  
write-host  -ForegroundColor white      'The PowerShell command that we use is: '
write-host  -ForegroundColor Cyan       'Set-DkimSigningConfig -Identity <Domain name> -Enabled $True '
write-host  -ForegroundColor Magenta    oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo                                         
write-host
 
 
# Display Information about DKIM settings for each existing Domain 
 
write-host
write-host -------------------------------------------------------------------------------------------------
write-host -ForegroundColor white  -BackgroundColor Blue   Display Information about DKIM settings for each existing Domain
write-host -------------------------------------------------------------------------------------------------
Get-DkimSigningConfig | Format-List  Domain  | Out-String
write-host -------------------------------------------------------------------------------------------------
 
 
# User input    
 
write-host -ForegroundColor white   'User input '
write-host -ForegroundColor white   ---------------------------------------------------------------------------- 
write-host -ForegroundColor Yellow  "You will need to provide 1 parameter:"  
write-host
write-host -ForegroundColor Yellow  "1.  Doamin name" 
write-host -ForegroundColor Yellow  "This is the name of the Domain for which you asking to Enable DKIM signature"   
write-host -ForegroundColor Yellow  "For example:  o365info.com"
write-host
$Domain  = Read-Host "Type the The Doamin name "
write-host
write-host
 
# Display Information about DKIM settings for Specific Domain name  |=> BEFORE the update 
 
write-host
write-host -------------------------------------------------------------------------------------------------
write-host -ForegroundColor white  -BackgroundColor Blue   Display information about: "$Domain".ToUpper() policy => BEFORE the update 
write-host -------------------------------------------------------------------------------------------------
Get-DkimSigningConfig $Domain | Select-Object  $global:Array1  | Out-String
write-host -------------------------------------------------------------------------------------------------
 
 
# PowerShell Command
 
Set-DkimSigningConfig -Identity $Domain -Enabled $True
 
# Display Information about DKIM settings for Specific Domain name | => AFTER the update 
 
write-host
write-host -------------------------------------------------------------------------------------------------
write-host -ForegroundColor white  -BackgroundColor Blue   Display information about: "$Domain".ToUpper() policy => AFTER the update 
write-host -------------------------------------------------------------------------------------------------
Get-DkimSigningConfig $Domain | Select-Object  $global:Array1  | Out-String
write-host -------------------------------------------------------------------------------------------------
 
# End the Command
write-host
write-host
Read-Host "Press Enter to continue..."
write-host
write-host
 
}
 
 
 
 
 
#=========================================================================================
# SECTION D: Create DKIM selectors configuration in Exchange Online 
#=========================================================================================
 
6
{
 
##########################################################################
# Enable the DKIM signing policy for a specific Domain name
##########################################################################
 
# information 
checkConnection
 
clear-host
 
write-host
write-host
write-host  -ForegroundColor Magenta    oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo                                              
write-host  -ForegroundColor white      Introduction                                                                                          
write-host  -ForegroundColor white      --------------------------------------------------------------------------------------                                                              
write-host  -ForegroundColor white      'This option will:  '
write-host  -ForegroundColor white      'Enable the DKIM signing policy for a specific Domain name'
write-host  -ForegroundColor white      ------------------------------------------------------------------------------------------  
write-host  -ForegroundColor white      'The PowerShell command that we use is: '
write-host  -ForegroundColor Cyan       'New-DkimSigningConfig -DomainNam <Domain name> -Enabled $True '
write-host  -ForegroundColor Magenta    oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo                                         
write-host
 
 
# Display Information about DKIM settings for each existing Domain 
 
write-host
write-host -------------------------------------------------------------------------------------------------
write-host -ForegroundColor white  -BackgroundColor Blue   Display Information about DKIM settings for each existing Domain
write-host -------------------------------------------------------------------------------------------------
Get-DkimSigningConfig | Format-List  Domain  | Out-String
write-host -------------------------------------------------------------------------------------------------
 
 
# User input    
 
write-host -ForegroundColor white   'User input '
write-host -ForegroundColor white   ---------------------------------------------------------------------------- 
write-host -ForegroundColor Yellow  "You will need to provide 1 parameter:"  
write-host
write-host -ForegroundColor Yellow  "1.  Doamin name" 
write-host -ForegroundColor Yellow  "This is the name of the Domain for which you asking to  Create DKIM selectors configuration in Exchange Online "   
write-host -ForegroundColor Yellow  "For example:  o365info.com"
write-host
$Domain  = Read-Host "Type the The Doamin name "
write-host
write-host
 
# Display Information about DKIM settings for Specific Domain name  |=> BEFORE the update 
 
write-host
write-host -------------------------------------------------------------------------------------------------
write-host -ForegroundColor white  -BackgroundColor Blue   Display information about: "$Domain".ToUpper() policy => BEFORE the update 
write-host -------------------------------------------------------------------------------------------------
Get-DkimSigningConfig $Domain | Select-Object  $global:Array1  | Out-String
write-host -------------------------------------------------------------------------------------------------
 
 
# PowerShell Command
 
New-DkimSigningConfig -DomainName $Domain 
 
# Display Information about DKIM settings for Specific Domain name | => AFTER the update 
 
write-host
write-host -------------------------------------------------------------------------------------------------
write-host -ForegroundColor white  -BackgroundColor Blue   Display information about: "$Domain".ToUpper() policy => AFTER the update 
write-host -------------------------------------------------------------------------------------------------
Get-DkimSigningConfig $Domain | Select-Object  $global:Array1  | Out-String
write-host -------------------------------------------------------------------------------------------------
 
# End the Command
write-host
write-host
Read-Host "Press Enter to continue..."
write-host
write-host
 
}
 
 
 
 
#<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
# Section END
#<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
#+++++++++++++++++++
# Step -05 Finish  
##++++++++++++++++++
 
    
20{
 
##########################################
# Disconnect PowerShell session  
##########################################
 
 
write-host -ForegroundColor Yellow Choosing this option will Disconnect the current PowerShell session 
 
Disconnect-ExchangeOnline 
 
write-host
write-host
 
#———— Indication ———————
 
if ($lastexitcode -eq 0)
{
write-host -------------------------------------------------------------
write-host "The command complete successfully !" -ForegroundColor Yellow
write-host "The PowerShell session is disconnected" -ForegroundColor Yellow
write-host -------------------------------------------------------------
}
else
 
{
write-host "The command Failed :-(" -ForegroundColor red
 
}
 
#———— End of Indication ———————
 
 
}
 
 
 
 
21
{
 
##########################################
# Exit  
##########################################
 
 
$Loop = $true
Exit
}
 
}
 
 
}

Comments