The Add-CMStateMigrationPoint cmdlet in System Center 2012 Configuration Manager sets an incorrect ServerRemoteName value

Applies to: Microsoft System Center 2012 R2 Configuration Manager


When you use the Add-CMStateMigrationPoint Windows PowerShell cmdlet that was introduced in Cumulative Update 1 for System Center 2012 Configuration Manager Service Pack 1 to create a new State Migration Point (SMP), an incorrect ServerRemoteName value is set. Additionally, you receive the following error message in the Smpisapi.log file:

::SecureAccess(pszStorePath, m_sAccessAccount, dwAccess, bGrantAccess), HRESULT=80070043 (e:\nts_sccm_release\sms\server\smp\isapi\smprequesthandler.cpp,941)        smpisapi             

AddACE to store with access account failed for directory \\SMPSTOREM_28C49E47$\FBC02D2321401636EFBD99756C5AAF338C3D018C06B9724EB56B409163928473.                smpisapi             

hr, HRESULT=80070043 (e:\nts_sccm_release\sms\server\smp\isapi\smprequesthandler.cpp,2311)       smpisapi               

Revoke access failed for directory \\SMPSTOREM_28C49E47$\FBC02D2321401636EFBD99756C5AAF338C3D018C06B9724EB56B409163928473.                smpisapi             

StatusRequest::UpdateStatus failed with errorcode (0x80070043)            smpisapi      


This issue occurs because the Add-CMStateMigrationPoint PowerShell cmdlet incorrectly sets the ServerRemoteName property for the state migration point to the fully qualified domain name (FQDN) of the first server in the hierarchy. Therefore, the client selects the best state migration point by locality (same IP subnet, same Active Directory site, and so on) but then uses the wrong FQDN to communicate with the state migration point.


To resolve this issue, use a Windows PowerShell script that resembles the script that is used for the distribution point. For example, use the following script:

Import-Module ($Env:SMS_ADMIN_UI_PATH.Substring(0,$Env:SMS_ADMIN_UI_PATH.Length-5) + '\ConfigurationManager.psd1')
$PSD = Get-PSDrive -PSProvider CMSite
CD "$($PSD):"
$strSiteData = CMSite
$strProviderSiteServer = $strSiteData.ServerName
$strProvSiteCode = $strSiteData.SiteCode
Function Set-Property
    $embeddedproperty_class = [wmiclass]""
    $embeddedproperty_class.psbase.Path = "\\$($MPServer)\ROOT\SMS\Site_$($SiteCode):SMS_EmbeddedProperty"
    $embeddedproperty = $embeddedproperty_class.createInstance()
    $embeddedproperty.PropertyName = $PropertyName
    $embeddedproperty.Value = $Value
    $embeddedproperty.Value1 = $Value1
    $embeddedproperty.Value2 = $Value2
    return $embeddedproperty
$query = "SELECT * FROM SMS_SCI_SysResUse WHERE RoleName like '%Migration%'"
$objQueryResult = Get-WmiObject -ComputerName $strProviderSiteServer -Namespace "ROOT\SMS\Site_$strProvSiteCode" -Query $query

foreach ($smp in $objQueryResult)
    $UpdateSMP = $False
    foreach ($prop in $smp.props)
        if ($prop.PropertyName -eq "Server Remote Name")
            if ($smp.NetworkOSPath.Substring(2,$($smp.NetworkOSPath.Length-2)) -ne $($prop.Value1))
                Write-Host "Not Similar $($smp.NetworkOSPath) : $($prop.Value1)"
                $smp.Props += [System.Management.ManagementBaseObject](Set-Property -MPServer $strProviderSiteServer -sitecode $strProvSiteCode -PropertyName "Server Remote Name" -value 0 -value1 ($smp.NetworkOSPath.Substring(2,$($smp.NetworkOSPath.Length-2))) -value2 '')
                $UpdateSMP = $True
    if ($UpdateSMP)
        write-host "Update Required for $($smp.NetworkOSPath)"