Поделиться через


Создание роли точки миграции состояния

Роль точки миграции состояния в Configuration Manager создается путем создания экземпляра класса WMI сервера SMS_SCI_SysResUse и предоставления значений свойств в следующей таблице.

Свойство Описание
RoleName Имя роли. Для точки миграции состояния значением является точка миграции состояния SMS.
SiteCode Код сайта для сайта.
NALPath Путь уровня абстракции сети (NAL) к точке миграции состояния. Дополнительные сведения см. в статье Метод PackNALPath в SMS_NAL_Methods класса.
NALType Тип ресурса. Для точки миграции состояния это должно быть Windows NT Server.

Вам также потребуется задать начальные значения для следующих внедренных свойств и внедренных списков свойств.

Имя Описание
Server Remote Name Сервер с точкой миграции состояния. Внедренное свойство.
SMPQuiesceState Задает режим только для восстановления. Дополнительные сведения см. в статье Настройка режима Restore-Only для точки миграции состояния. Внедренное свойство.
SMPStoreDeletionDelayTimeInMinutes Задает политику удаления. Дополнительные сведения см. в разделе Настройка политики удаления для точки миграции состояния. Внедренное свойство.
SMPStoreDeletionCycleTimeInMinutes Задает политику удаления. Дополнительные сведения см. в разделе Настройка политики удаления для точки миграции состояния.
Directories Списки папки точек миграции состояния. Дополнительные сведения см. в разделе Добавление папки точки миграции состояния.

Создание роли точки миграции состояния

  1. Настройте подключение к поставщику SMS. Дополнительные сведения см. в статье Основы поставщика SMS.

  2. Создайте экземпляр класса WMI сервера SMS_SCI_SysResUse.

  3. Заполните свойства, перечисленные выше.

  4. Зафиксируйте SMS_SCI_SystResUse объект .

Пример

В следующем примере метод создает точку миграции состояния из предоставленного кода сайта и пути NAL. Некоторые вспомогательные функции предоставляются для записи внедренных свойств и внедренных списков свойств в файл элемента управления сайтом.

Важно!

В этом примере используются другие фрагменты кода точки миграции состояния для задания различных значений. Методы AddSmpFolder, SetRestoreOnlyModeSetDeletionPolicy описаны в следующих разделах:

Сведения о вызове примера кода см. в разделе Вызов фрагментов кода 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;
}

Метод примера имеет следующие параметры:

Параметр Тип Описание
connection Управляемых: WqlConnectionManager Допустимое подключение к поставщику SMS.
serverName Управляемых: String Сервер Configuration Manager, на котором запущена точка миграции состояния.
siteCode Управляемых: String Код сайта Configuration Manager.
nalPath Управляемых: String Путь NAL к точке миграции состояния. Пример: ["Display=\\SERVERNAME\"]MSWNET:["SMS_SITE=SITECODE"]\\SERVERNAME\

Компиляция программы

Пример C# имеет следующие требования к компиляции:

Пространства имен

System;

System.Collections.Generic;

System.Text

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Надежное программирование

Дополнительные сведения об обработке ошибок см. в разделе Сведения об ошибках Configuration Manager.

Безопасность .NET Framework

Дополнительные сведения о защите приложений Configuration Manager см. в статье Configuration Manager администрирование на основе ролей.

См. также

метод SMS_SCI_SysResUse server WMI ClassPackNALPath в классе SMS_NAL_Methodsо конфигурации ролей сайта развертывания ОС. Добавление папки точки миграции состояния. Установка политики удаления для точки миграции состояния. Установка режима Restore-Only для точки миграции состояния. Чтение и запись в файл Configuration Manager управления сайтом с помощью управляемого кодаЧтение и запись в файл элемента управления сайтом Configuration Manager с помощью WMI