Löschen der Rolle „Zustandsmigrationspunkt“How to Delete a State Migration Point Role

Sie löschen die Zustands Migrations Punkt-Rolle in Configuration Manager, indem Sie das WMI-Klassenobjekt SMS_SCI_SysResUse Server der Rolle löschen.You delete the state migration point role, in Configuration Manager, by deleting the role's SMS_SCI_SysResUse Server WMI Class object.

So löschen Sie eine Rolle für den Zustands Migrations PunktTo delete a state migration point role

  1. Richten Sie eine Verbindung mit dem SMS-Anbieter ein.Set up a connection to the SMS Provider. Weitere Informationen finden Sie unter Grundlagen des SMS-Anbieters.For more information, see SMS Provider fundamentals.

  2. Holen Sie sich das WMI-Klassen Objekt für den SMS_SCI_SysResUse Server für die Rolle "Zustands Migrations Punkt".Get the SMS_SCI_SysResUse Server WMI Class object for the state migration point role.

  3. Legen Sie den entsprechenden Zustands Migrations Punkt auf "keine" fest.Set the corresponding state migration point to none.

  4. Löschen Sie das WMI-Klassen Objekt "State Migration Point SMS_SCI_SysResUse Server".Delete the state migration point SMS_SCI_SysResUse Server WMI Class object.

BeispielExample

Die folgende Beispiel Methode löscht den Zustands Migrations Punkt, der durch den Standortcode und den Pfad der Netzwerk Abstraktionsschicht (NAL) identifiziert wird.The following example method deletes the state migration point identified by the site code and network abstraction layer (NAL) path. Im Beispiel wird ermittelt, ob der Zustands Migrations Punkt über unvollständige Zustands Migrations Wiederherstellungen verfügt.The example determines whether the state migration point has any incomplete state migration restores in process. Wenn eine vorhanden ist, löscht die aktuelle Implementierung weiterhin den Zustands Migrations Punkt.If there are any, the current implementation still deletes the state migration point.

Informationen zum Aufrufen des Beispielcodes finden Sie unter Aufrufen von Configuration Manager-Codeausschnitten.For information about calling the sample code, see Calling Configuration Manager Code Snippets.

public void DeleteSmpRole(  
     WqlConnectionManager connection,  
     string siteCode,  
     string nalPath)  
 {  
     try  
     {  
         bool smpFound = false;  
         Console.WriteLine("About to delete the state migration point");  
         string query = string.Format(CultureInfo.InvariantCulture,  
      @"SELECT * from SMS_SCI_SysResUse where SiteCode='{0}' AND FileType=2 AND RoleName='{1}'AND NALPath='{2}'",  
      siteCode,  
      "SMS State Migration Point",  
      nalPath.Replace(@"\", @"\\"));  

         IResultObject resultObjs = connection.QueryProcessor.ExecuteQuery(query);  

         foreach (IResultObject resultObj in resultObjs)  
         {  
             smpFound = true;  
             if (DeleteSmpOK(resultObj) == true)  
             {  
                 resultObj.Delete();  
             }  

             Console.WriteLine("Deleted");  
         }  

         if (smpFound == false)  
         {  
             Console.WriteLine("No state migration point was found");  
         }  
     }  
     catch (SmsException e)  
     {  
         Console.WriteLine("Couldn't delete the state migration point: " + e.Message);  
         throw;  
     }  

 }  

public bool DeleteSmpOK(IResultObject selectedResultObject)  
{  
    IResultObject resultObjs = null;  
    try  
    {  
        // Locate this state migration point, and determine if it is in QuiesceState or not, normal deletion  
        // if it is not.  
        string query = string.Format(CultureInfo.InvariantCulture,  
        @"SELECT * from SMS_SCI_SysResUse where SiteCode='{0}' AND FileType=2 AND NALPath='{1}' AND RoleName='{2}'",  
        selectedResultObject["SiteCode"].StringValue,  
        selectedResultObject["NALPath"].StringValue.Replace(@"\", @"\\"),  
        "SMS State Migration Point");  

        resultObjs = selectedResultObject.ConnectionManager.QueryProcessor.ExecuteQuery(query);  

        // Retrieve the state migration point server name because there could be more than one state migration point on the site, and you want to  
        // determine if there are unrestored data stores on only this one.  
        string smpServer = selectedResultObject["NetworkOsPath"].StringValue;  
        smpServer = smpServer.Replace(@"\", "");  

        foreach (IResultObject resultObj in resultObjs)  
        {  
            if (resultObj.EmbeddedProperties.ContainsKey("SMPQuiesceState") == true &&  
                resultObj.EmbeddedProperties["SMPQuiesceState"].Properties["Value"].IntegerValue != 0)  
            {  
                // Find out whether this state migration point contains any stateMigrationRestores that are incomplete on this  
                // server that is to be deleted.  
                string query2 = string.Format(CultureInfo.InvariantCulture, @"SELECT * from SMS_StateMigration where StorePath Like '%{0}%'", smpServer);  

                IResultObject resultObjs2 = selectedResultObject.ConnectionManager.QueryProcessor.ExecuteQuery(query2);  

                foreach (IResultObject resultObj2 in resultObjs2)  
                {  
                    // Look for state migration objects without a StoreReleaseData/Migration date  
                    // it's the one that will cause an exception when reading releasetime because it is not a valid datetime.  
                    try  
                    {  
                        DateTime releaseTime = resultObj2["StoreReleaseDate"].DateTimeValue;  
                    }  
                    catch (ArgumentOutOfRangeException)  
                    {  
                        // Alternatively return false if you do not to delete.  
                        return true;  
                    }  
                }  
            }  
        }  
    }  
    catch (SmsQueryException ex)  
    {  
        Console.WriteLine("Failed during smp state determination" + ex.Message);  
        throw;  
    }  
    finally  
    {  
        if (resultObjs != null)  
        {  
            resultObjs.Dispose();  
        }  
    }  

    // Delete the role.  
    return true;  
}  

Die Beispielmethode verfügt über die folgenden Parameter:The example method has the following parameters:

ParameterParameter typeType BESCHREIBUNGDescription
connection Ge WqlConnectionManagerManaged: WqlConnectionManager Eine gültige Verbindung mit dem SMS-Anbieter.A valid connection to the SMS Provider.
siteCode Ge StringManaged: String Der Configuration Manager-Standortcode.The Configuration Manager site code.
nalPath Ge StringManaged: String Der NAL-Pfad zum Zustands Migrations Punkt.The NAL path to the state migration point. Beispiel: ["Display=\\SERVERNAME\"]MSWNET:["SMS_SITE=SITECODE"]\\SERVERNAME\For example ["Display=\\SERVERNAME\"]MSWNET:["SMS_SITE=SITECODE"]\\SERVERNAME\

Kompilieren des CodesCompiling the Code

Im c#-Beispiel werden die folgenden Kompilierungs Anforderungen aufgeführt:The C# example has the following compilation requirements:

NamespacesNamespaces

SystemSystem

System.Collections.GenericSystem.Collections.Generic

System.TextSystem.Text

Microsoft.ConfigurationManagement.ManagementProviderMicrosoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngineMicrosoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

System.GlobalizationSystem.Globalization

AssemblyAssembly

microsoft.configurationmanagement.managementprovidermicrosoft.configurationmanagement.managementprovider

adminui.wqlqueryengineadminui.wqlqueryengine

Stabile ProgrammierungRobust Programming

Weitere Informationen zur Fehlerbehandlung finden Sie unter Informationen zu Configuration Manager-Fehlern.For more information about error handling, see About Configuration Manager Errors.

.NET Framework-Sicherheit.NET Framework Security

Weitere Informationen zum Sichern von Configuration Manager Anwendungen finden Sie unter Configuration Manager rollenbasierte Verwaltung.For more information about securing Configuration Manager applications, see Configuration Manager role-based administration.

Weitere InformationenSee Also

WMI-Klasse für den SMS_SCI_SysResUse Server SMS_SCI_SysResUse Server WMI Class
Informationen zur Konfiguration der Standort Rolle für die Betriebssystem Bereitstellung Lesen und Schreiben in die Configuration Manager Standort Steuerungs Datei mithilfe von verwaltetem CodeAbout OS deployment site role configuration How to Read and Write to the Configuration Manager Site Control File by Using Managed Code