DAG Management CMDlets

DAG Management PowerShell Commands

Get DAG Status

Get-DatabaseAvailabilityGroup <dag name> -Status | fl

StartDagServerMaintenance.ps1 script to put the DAG member in maintenance mode

.\StartDagServerMaintenance.ps1 -serverName <server name>

StopDagServerMaintenance.ps1 script to take the DAG member out of maintenance mode

.\StopDagServerMaintenance.ps1 -serverName <server name>

Find DatabaseCopyAutoActivationPolicy for all Servers

Get-MailboxServer | Sort-Object -Property DatabaseCopyAutoActivationPolicy | ft name,DatabaseCopyAutoActivationPolicy -AutoSize

Get Maintenance Status

Get-DatabaseAvailabilityGroup <dag name> -Status | fl Servers, ServersInMaintenance

Get ALL Databases and Active Preference information NEAT

Get-MailboxDatabase | Sort Name | ft Name,ServerName,MountedOnServer, ActivationPreference -AutoSize

Get Databases sorted by Active Server

Get-MailboxDatabase | Sort-Object -Property MountedonServer | ft Name,ServerName,MountedOnServer, ActivationPreference -AutoSize

Get Number of Databases in DAG

(Get-MailboxDatabase).count

Get All databases and Activation Preference information

Get-MailboxDatabase | ft name, server, activationpreference -AutoSize

Get Specific databases and Activation Preference information

Get-MailboxDatabase -Identity ‘<database name> | fl name, server, activationpreference

Get Primary Active Manager (PAM)

Get-DatabaseAvailabilityGroup -Identity <dag name> -Status | fl name,primaryactivemanager

Move PAM to another server

cluster.exe <dag name> group “cluster group” /moveto:<server name>

To block DB activation (switch site as needed)

Get-ExchangeServer | where { $_.Site -like ‘DOMAIN.ORG/Configuration/Sites/Site’ } | Get-MailboxServer | Set-MailboxServer –DatabaseCopyAutoActivationPolicy Blocked

Enable DAC Mode

Set-DatabaseAvailabilityGroup –identity “<dag name>” –DatacenterActivationMode DagOnly

Run RedistributeActiveDatabases.ps1 script to re-balance the active database copies across the DAG

.\RedistributeActiveDatabases.ps1 -DagName <dag name> -BalanceDbsByActivationPreference -ShowFinalDatabaseDistribution -Confirm:$false > DagConfig.txt

Remove Server from Dag

Remove-DatabaseAvailabilityGroupServer -Identity <dag name> -MailboxServer <server name>

Add Server to DAG

ADD-DatabaseAvailabilityGroupServer -Identity <dag name> -MailboxServer <server name>

Unblock all databases hosted on a server 

Set-MailboxServer –identity <server name> –DatabaseCopyAutoActivationPolicy Unrestricted

Block all databases hosted on Server

Set-MailboxServer –identity <server name> –DatabaseCopyAutoActivationPolicy Blocked

Set Mailbox Database Copy Activation Copy

Set-MailboxDatabaseCopy -Identity EX10MBX02\EX10SRV02 -ActivationPreference 1

To block a database copy from getting activated automatically

Suspend-MailboxDatabaseCopy –identity EX10mbx01\EX10SRV03 –ActivationOnly

To reverse the unblock process

Resume-MailboxDatabaseCopy –identity EX10mbx04\EX10SRV13

Similar Posts

  • | |

    Exchange Database Availability Group (DAG) Concepts

    Database Availability Group (DAG) Concepts DAG Members The Mailbox servers that are members of the DAG and can host database copies within the DAG. A DAG can have up to 16 members and a File Share Witness. Quorum The process by which the DAG members determine whether a majority of members are online and available….

  • | | |

    Managing Mailbox Permissions CMDlets

    Managing Mailbox Permissions PowerShell Commands Grant Send on Behalf of Permissions Set-Mailbox ‘user@domain.com’ -GrantSendOnBehalfTo ‘user@domain.com’ Add Editor permissions Add-MailboxFolderPermission -Identity ‘user@domain.com’ -User ‘user@domain.com’ -AccessRights Editor Add Reviewer permissions (what if) Set-MailboxFolderPermission -Identity ‘user@domain.com’ -User ‘user@domain.com’ -AccessRights Reviewer -whatif Getting Mailbox Folder Permissions Get-MailboxFolderPermission -Identity ‘user@domain.com’ | fl Get-MailboxFolderPermission -Identity user@domain.com:\inbox Impersonation Rights New-ManagementRoleAssignment Name:RoleName -Role:ApplicationImpersonation -User:’domain\alias’…

  • | |

    Message Tracking CMDlets

    Exchange Message Tracking PowerShell CMDlets Search by Message ID Get-ExchangeServer | get-messagetrackinglog -MessageID “<messageID>” -Start “5/16/2012 12:01:00 AM” -End “5/16/2012 11:59:00 PM” | fl Timestamp,ClientIp,ClientHostname,ServerIp,ServerHostname,Source,EventId,MessageId, @{Name=”Recipients”;Expression={$_.recipients}},@{Name=”Recipientstatus”;Expression={$_.recipientstatus}},TotalBytes,MessageSubject,Sender,ReturnPath,MessageLantency Search by Sender Get-ExchangeServer | get-messagetrackinglog -sender user@domain.com -Start “11/15/2012 12:00:00 AM” -End “11/16/2012 11:59:00 PM” | fl Timestamp,ClientIp,ClientHostname,ServerIp,ServerHostname, Source,EventId,MessageId, @{Name=”Recipients”;Expression={$_.recipients}},@{Name=”Recipientstatus”;Expression={$_.recipientstatus}},TotalBytes,MessageSubject,Sender Search by Recipient Get-ExchangeServer | get-messagetrackinglog -recipient user@domain.com…

  • Exchange Mail Queue Management CMDlets

    Exchange Mail Queue Management PowerShell CMDlets Get Message Queue information Get-transportserver | Get-Queue –SortOrder: -MessageCount Get Queue Details Get-Queue –Server <server name> | Sort-Object -Property Messagecount | FT Identity, DeliveryType, NextHopDomain, Status, MessageCount, LastRetryTime, LastError -autosize Move Messages to Another Working Queue In the event a Hub Transport server is completely out, you may have the…

Leave a Reply

Your email address will not be published. Required fields are marked *