none
Failed database redistribution Exchange Server 2013 RRS feed

  • Question

  • Hi all, I have a problem with running the script .RedistributeActiveDatabases.ps1, on my Exchange Server 2013, I currently have 4 Exchange servers and my servers already count the CU23.

    When running the script

    .\RedistributeActiveDatabases.ps1 -DagName DAG -BalanceDbsByActivationPreference -ShowFinalDatabaseDistribution -Confirm:$false

    It generates the following error.

    Cannot process argument transformation on parameter 'Server'. Cannot convert value "SERVEREXC04" to type
    "Microsoft.Exchange.Configuration.Tasks.ServerIdParameter". Error: "Cannot convert hashtable to an object of the
    following type: Microsoft.Exchange.Configuration.Tasks.ServerIdParameter. Hashtable-to-Object conversion is not
    supported in restricted language mode or a Data section."
        + CategoryInfo          : InvalidData: (:) [Get-MailboxDatabase], ParameterBindin...mationException
        + FullyQualifiedErrorId : ParameterArgumentTransformationError,Get-MailboxDatabase
        + PSComputerName        : SERVEREXC01.bmm.com

    Cannot process argument transformation on parameter 'Server'. Cannot convert value "SERVEREXC03" to type
    "Microsoft.Exchange.Configuration.Tasks.ServerIdParameter". Error: "Cannot convert hashtable to an object of the
    following type: Microsoft.Exchange.Configuration.Tasks.ServerIdParameter. Hashtable-to-Object conversion is not
    supported in restricted language mode or a Data section."
        + CategoryInfo          : InvalidData: (:) [Get-MailboxDatabase], ParameterBindin...mationException
        + FullyQualifiedErrorId : ParameterArgumentTransformationError,Get-MailboxDatabase
        + PSComputerName        : SERVEREXC01.bmm.com

    Cannot process argument transformation on parameter 'Server'. Cannot convert value "SERVEREXC02" to type
    "Microsoft.Exchange.Configuration.Tasks.ServerIdParameter". Error: "Cannot convert hashtable to an object of the
    following type: Microsoft.Exchange.Configuration.Tasks.ServerIdParameter. Hashtable-to-Object conversion is not
    supported in restricted language mode or a Data section."
        + CategoryInfo          : InvalidData: (:) [Get-MailboxDatabase], ParameterBindin...mationException
        + FullyQualifiedErrorId : ParameterArgumentTransformationError,Get-MailboxDatabase
        + PSComputerName        : SERVEREXC01.bmm.com

    Cannot process argument transformation on parameter 'Server'. Cannot convert value "SERVEREXC01" to type
    "Microsoft.Exchange.Configuration.Tasks.ServerIdParameter". Error: "Cannot convert hashtable to an object of the
    following type: Microsoft.Exchange.Configuration.Tasks.ServerIdParameter. Hashtable-to-Object conversion is not
    supported in restricted language mode or a Data section."
        + CategoryInfo          : InvalidData: (:) [Get-MailboxDatabase], ParameterBindin...mationException
        + FullyQualifiedErrorId : ParameterArgumentTransformationError,Get-MailboxDatabase
        + PSComputerName        : SERVEREXC01.bmm.com

    Property 'Count' cannot be found on this object. Make sure that it exists.
    At C:\Program Files\Microsoft\Exchange Server\V15\scripts\RedistributeActiveDatabases.ps1:203 char:2
    +     [int]$numDbs = $script:databases.Count
    +     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [], PropertyNotFoundException
        + FullyQualifiedErrorId : PropertyNotFoundStrict


    thank you for your help


    • Edited by Fenix2191 Tuesday, March 16, 2021 5:53 PM
    Tuesday, March 16, 2021 5:40 PM

Answers

  • Hello, the validations performed for the error are:

    1. validate the object in the Active Directory, check the security permissions.
    2. validate the IPs associated to the Exchange DAG.
    3. Verify that the DAG Name is resolved by DNS.

    In my case, someone deleted the DNS record associated to the Exchange DAG, this caused the problem with the Exchange .RedistributeActiveDatabases.ps1 script.

    Thank you very much 

    • Marked as answer by Fenix2191 Wednesday, April 7, 2021 5:10 AM
    Wednesday, April 7, 2021 5:10 AM

All replies

  • Are you sure you have CU 23 loaded?  It seems that you are 'Trying' to install it?

    https://docs.microsoft.com/en-us/exchange/troubleshoot/administration/cannot-process-argument-transformation-error

    Looks like you might be running as local admin rather than from an account with an associated mailbox.


    Steve W.

    Microsoft Certified Professional



    Disclaimer: This posting is provided "AS IS" with no warranties or guarantees, and confers no rights.

    • Proposed as answer by KHURRAM RAHIM Thursday, June 17, 2021 1:50 PM
    Wednesday, March 17, 2021 7:11 PM
  • Hello, the validations performed for the error are:

    1. validate the object in the Active Directory, check the security permissions.
    2. validate the IPs associated to the Exchange DAG.
    3. Verify that the DAG Name is resolved by DNS.

    In my case, someone deleted the DNS record associated to the Exchange DAG, this caused the problem with the Exchange .RedistributeActiveDatabases.ps1 script.

    Thank you very much 

    • Marked as answer by Fenix2191 Wednesday, April 7, 2021 5:10 AM
    Wednesday, April 7, 2021 5:10 AM
  •  nice
    Wednesday, April 7, 2021 10:05 AM
  • 1. Validate the object in the Active Directory then check the security permissions.
    2. Validate the IPs associated to the Exchange DAG.
    3. Verify that the DAG Name is resolved by DNS.

    Wednesday, April 14, 2021 1:49 AM
  • When you’re running an Exchange 2013 database availability group you will eventually need to deal with a failed database copy that needs to be reseeded.

    Database copies may be in a failed state due to a variety of reasons, such as a hardware failure on the underlying storage system. After resolving the root cause of a failed database copy you then need to reseed the copy, which is a process that creates a new copy of the database by replicating the data from another DAG member that hosts a healthy copy.

    To demonstrate how to reseed a failed database copy I’ve first caused a failure of one of my databases, which can be seen here in the output of the Get-MailboxDatabaseCopyStatus cmdlet.

    [PS] C:\>Get-MailboxDatabaseCopyStatus *

    Mailbox Database 1E15MB1 Healthy
    Mailbox Database 2E15MB1 FailedAndSuspended
    Mailbox Database 1E15MB2 Mounted
    Mailbox Database 2E15MB2 Mounted
    If you’re looking for guidance to resolve failed content indexes in your database availability group, see PowerShell Tip: Fix All Failed Exchange Database Content Indexes.

    The reseed operation can be started using either the Exchange Admin Center or the Exchange Management Shell (PowerShell).

    Table of Contents
    Preparing to Reseed a Database Copy
    There are a number of considerations when reseeding a database copy.

    First, the time required for the reseed to complete will depend on the size of the database and the network performance between the source and destination servers.

    By default the reseed will use the DAG member hosting the active database copy as the source.

    If the database is 500Gb in size, that is 500Gb of database that needs to be copied across the network, plus the transaction log files and the content index for that database. This can add up to a lot of data that needs to travel across your network.

    If the DAG members exist only within a single site connected by high speed LAN then this will not likely be a concern.

    exchange-2013-reseed-from-active

    However if the DAG members exist in multiple sites across a WAN then it may be more of an issue.

    Fortunately, you can specify a source server for the database reseed, which allows you to select a server that has better connectivity to reseed from, such as another DAG member within the same site as the server with the failed database copy.

    exchange-2013-reseed-from-passive

    The options for selecting a reseed source will be demonstrated below.

    Reseeding a Database Copy Using the Exchange Admin Center
    Open the Exchange Admin Center and navigate to Servers -> Databases. Select the database that has the failed copy.

    exchange-2013-reseed-failed-database-copy-01

    On the database copy that is shown as failed click the Update link.

    exchange-2013-reseed-failed-database-copy-02

    You can click Browse and specify a source server if necessary, otherwise click Save to reseed from the server that hosts the active database copy.

    exchange-2013-reseed-failed-database-copy-03

    Wait for the reseed operation to complete.

    exchange-2013-reseed-failed-database-copy-04

    When the reseed operation has finished the database copy should now be healthy.

    Reseeding a Database Copy using the Exchange Management Shell
    We can also perform reseeds using the Update-MailboxDatabaseCopy cmdlet.

    The database to reseed is entered in the format “Database NameServer Name”, for example:

    [PS] C:\>Update-MailboxDatabaseCopy "Mailbox Database 2E15MB1"
    To specify a source server for the reseed use the -SourceServer parameter as well.

    [PS] C:\>Update-MailboxDatabaseCopy "Mailbox Database 2E15MB1" -SourceServer EXMB3
    If you receive an error message that log files already exist in the transaction log path for the database you can use the -DeleteExistingFiles parameter to tell the Exchange server to remove those files before beginning the reseed.

    [PS] C:\>Update-MailboxDatabaseCopy "Mailbox Database 2E15MB1" -DeleteExistingFiles
    Finally, for long reseeds where you do not want to leave your Exchange Management Shell open, or when scripting a reseed and you don’t want the script to have to wait for the reseed to complete, you can use the -BeginSeed parameter.

    [PS] C:\>Update-MailboxDatabaseCopy "Mailbox Database 2E15MB1" -BeginSeed
    Of course those parameters can be used in conjunction with each other, for example:

    [PS] C:\>Update-MailboxDatabaseCopy "Mailbox Database 2E15MB1" -DeleteExistingFiles -BeginSeed -SourceServer E15MB3
    Monitoring Database Copy Health
    If you do not already have a monitoring solution in place for your Exchange 2013 DAG I encourage you to try my Get-DAGHealth.ps1 or Test-ExchangeServerHealth.ps1 scripts.

    Greeting,

    Rachel Gomez

    Monday, August 22, 2022 7:18 AM
  • Open the Exchange Admin Center and navigate to Servers -> Databases. Select the database that has the failed copy.

    On the database copy that is shown as failed click the Update link.

    You can click Browse and specify a source server if necessary, otherwise click Save to reseed from the server that hosts the active database copy.

    Wait for the reseed operation to complete.

    When the reseed operation has finished the database copy should now be healthy.

    Hope You Find This Useful,
    Peter

    Monday, October 17, 2022 7:52 AM
  •  Select the database that has the failed copy. On the database copy that is shown as failed click the Update link. You can click Browse and specify a source server if necessary, otherwise click Save to reseed from the server that hosts the active database copy.

    Regards,
    Henry

    Wednesday, November 2, 2022 5:22 AM
  • Open the Exchange Admin Center and navigate to Servers -> Databases. Select the database that has the failed copy.
    On the database copy that is shown as failed click the Update link.
    You can click Browse and specify a source server if necessary, otherwise click Save to reseed from the server that hosts the active database copy.
    Wait for the reseed operation to complete.

    Hope You Find This Useful,
    Peter

    Wednesday, November 2, 2022 7:11 AM