Udostępnij za pośrednictwem


Jak utworzyć rolę punktu migracji stanu

Rolę punktu migracji stanu można utworzyć w Configuration Manager, tworząc wystąpienie klasy WMI serwera SMS_SCI_SysResUse i podając wartości właściwości w poniższej tabeli.

Właściwość Opis
RoleName Nazwa roli. W przypadku punktu migracji stanu wartość to SMS State Migration Point.
SiteCode Kod witryny.
NALPath Ścieżka warstwy abstrakcji sieci (NAL) do punktu migracji stanu. Aby uzyskać więcej informacji, zobacz PackNALPath Method in Class SMS_NAL_Methods (Metoda PackNALPath klasy SMS_NAL_Methods).
NALType Typ zasobu. W przypadku punktu migracji stanu powinien to być system Windows NT Server.

Należy również ustawić wartości początkowe dla następujących osadzonych właściwości i osadzonych list właściwości.

Name (Nazwa) Opis
Server Remote Name Serwer, który ma punkt migracji stanu. Właściwość embedded.
SMPQuiesceState Ustawia tryb tylko do przywracania. Aby uzyskać więcej informacji, zobacz How to Set the Restore-Only Mode for a State Migration Point (Jak ustawić tryb Restore-Only dla punktu migracji stanu). Właściwość embedded.
SMPStoreDeletionDelayTimeInMinutes Ustawia zasady usuwania. Aby uzyskać więcej informacji, zobacz How to Set the Deletion Policy for a State Migration Point (Jak ustawić zasady usuwania dla punktu migracji stanu). Właściwość embedded.
SMPStoreDeletionCycleTimeInMinutes Ustawia zasady usuwania. Aby uzyskać więcej informacji, zobacz How to Set the Deletion Policy for a State Migration Point (Jak ustawić zasady usuwania dla punktu migracji stanu).
Directories Wyświetla listę folderów punktu migracji stanu. Aby uzyskać więcej informacji, zobacz Jak dodać folder punktu migracji stanu.

Aby utworzyć rolę punktu migracji stanu

  1. Skonfiguruj połączenie z dostawcą programu SMS. Aby uzyskać więcej informacji, zobacz Podstawy dostawcy programu SMS.

  2. Utwórz wystąpienie klasy WMI serwera SMS_SCI_SysResUse.

  3. Wypełnij właściwości wymienione powyżej.

  4. SMS_SCI_SystResUse Zatwierdź obiekt.

Przykład

Poniższa przykładowa metoda tworzy punkt migracji stanu na podstawie podanego kodu lokacji i ścieżki NAL. Niektóre funkcje pomocnicze są udostępniane do zapisywania osadzonych właściwości i osadzonych list właściwości w pliku kontroli lokacji.

Ważna

W tym przykładzie użyto innych fragmentów kodu punktu migracji stanu, aby ustawić różne wartości. Metody AddSmpFolder, SetRestoreOnlyMode, SetDeletionPolicy zostały opisane w poniższych tematach:

Aby uzyskać informacje na temat wywoływania przykładowego kodu, zobacz Wywoływanie fragmentów kodu Configuration Manager.

public void CreateSmpRole(  
     WqlConnectionManager connection,  
     string serverName,  
     string siteCode,  
     string nalPath)  
{  
    try  
    {  
        // Create the state migration point resource object.  
        IResultObject smpRole = connection.CreateInstance("SMS_SCI_SysResUse");  
        smpRole["RoleName"].StringValue = "SMS State Migration Point";  

        // Set the state migration point properties.  
        smpRole["SiteCode"].StringValue = siteCode;  
        smpRole["NALPath"].StringValue = nalPath;  
        smpRole["NALType"].StringValue = "Windows NT Server";  

        // Create the embedded property and property lists.  
        this.WriteScfEmbeddedProperty(smpRole, "Server Remote Name", 0, serverName, string.Empty);  
        this.WriteScfEmbeddedProperty(smpRole, "SMPQuiesceState", 1, string.Empty, string.Empty);  
        this.WriteScfEmbeddedProperty(smpRole, "SMPStoreDeletionDelayTimeInMinutes", 0, string.Empty, string.Empty);  
        this.WriteScfEmbeddedProperty(smpRole, "SMPStoreDeletionCycleTimeInMinutes", 0, string.Empty, string.Empty);  
        this.WriteScfEmbeddedPropertyList(smpRole, "Directories", null);  

        // Commit the site role.  
        smpRole.Put();  

        // Use SDK snippets to populate some values.  
        this.AddSmpFolder(connection, @"C:\temp", 100, 10, 1, serverName, siteCode);  
        this.SetRestoreOnlyMode(connection, serverName, siteCode, true);  
        this.SetDeletionPolicy(connection, serverName, siteCode, 10);  
    }  
    catch (SmsException e)  
    {  
        Console.WriteLine("Failed to create the state migration point: " + e.Message);  
        throw;  
    }  
}  
public void WriteScfEmbeddedPropertyList(  
    IResultObject resource,  
    string propertyListName,  
    string[] values  
    )  

    // Create an embedded property list for the supplied resource.  
{  
    Dictionary<string, IResultObject> EmbeddedPropertyList = resource.EmbeddedPropertyLists;  

    // Get the property list, or create it.   
    IResultObject ropl;  
    if (EmbeddedPropertyList.ContainsKey(propertyListName))  
    {  
        ropl = EmbeddedPropertyList[propertyListName];  
    }  
    else  
    {  
        ConnectionManagerBase connection = resource.ConnectionManager;  
        ropl = connection.CreateEmbeddedObjectInstance("SMS_EmbeddedPropertyList");  
        EmbeddedPropertyList.Add(propertyListName, ropl);  
    }  

    // Set the property list properties.  
    ropl["PropertyListName"].StringValue = propertyListName;  
    ropl["Values"].StringArrayValue = values;  
    resource.EmbeddedPropertyLists = EmbeddedPropertyList;  
}  

public void WriteScfEmbeddedProperty(  
    IResultObject resource,  
    string propertyName,  
    int value,  
    string value1,  
    string value2)  
{  
    // Properties  
    // Server remote name  
    Dictionary<string, IResultObject> EmbeddedProperties = resource.EmbeddedProperties;  

    // Get the property, or create it.  
    IResultObject ro;  
    if (EmbeddedProperties.ContainsKey(propertyName))  
    {  
        ro = EmbeddedProperties[propertyName];  
    }  
    else  
    {  
        ConnectionManagerBase connection = resource.ConnectionManager;  
        ro = connection.CreateEmbeddedObjectInstance("SMS_EmbeddedProperty");  
        EmbeddedProperties.Add(propertyName, ro);  
    }  

    ro["PropertyName"].StringValue = propertyName;  
    ro["Value"].IntegerValue = value;  
    ro["Value1"].StringValue = value1;  
    ro["Value2"].StringValue = value2;  

    resource.EmbeddedProperties = EmbeddedProperties;  
}  

Przykładowa metoda ma następujące parametry:

Parametr Wpisać Opis
connection Zarządzane: WqlConnectionManager Prawidłowe połączenie z dostawcą programu SMS.
serverName Zarządzane: String Serwer Configuration Manager, na którym działa punkt migracji stanu.
siteCode Zarządzane: String Kod witryny Configuration Manager.
nalPath Zarządzane: String Ścieżka NAL do punktu migracji stanu. Na przykład ["Display=\\SERVERNAME\"]MSWNET:["SMS_SITE=SITECODE"]\\SERVERNAME\

Kompilowanie kodu

Przykład języka C# ma następujące wymagania dotyczące kompilacji:

Obszary nazw

System

System.collections.generic

System.text

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Zestawu

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Niezawodne programowanie

Aby uzyskać więcej informacji na temat obsługi błędów, zobacz Informacje o błędach Configuration Manager.

zabezpieczenia .NET Framework

Aby uzyskać więcej informacji na temat zabezpieczania aplikacji Configuration Manager, zobacz Configuration Manager administracja oparta na rolach.

Zobacz też

SMS_SCI_SysResUse Server WMI Class
PackNALPath, metoda w klasie SMS_NAL_Methods
Informacje o konfiguracji roli lokacji wdrożenia systemu operacyjnegoJak dodać folder punktu migracji stanu
Jak ustawić zasady usuwania dla punktu migracji stanu
Jak ustawić tryb Restore-Only dla punktu migracji stanu
Jak odczytywać i zapisywać w pliku kontroli lokacji Configuration Manager przy użyciu kodu zarządzanego
Jak odczytywać i zapisywać w pliku kontroli lokacji Configuration Manager przy użyciu usługi WMI