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


Настройка параметров WSUS

Параметры компонента Windows Server Update Services (WSUS) настраивается в Configuration Manager путем изменения файла элемента управления сайтом. Дополнительные сведения см. в разделе Windows Server Update Services.

Настройка параметров WSUS

  1. Настройте подключение к поставщику SMS.

  2. Установите подключение к разделу компонента WSUS Configuration Manager файла элемента управления сайтом с помощью класса SMS_SCI_Component.

  3. Loop через массив доступных свойств, внося изменения по мере необходимости.

  4. Зафиксируйте изменения свойств в файле элемента управления сайтом.

Пример

В следующем примере метод настраивает различные параметры компонентов Windows Server Update Services (WSUS) с помощью класса SMS_SCI_Component для подключения к файлу элемента управления сайта и изменения свойств.

Примечание.

Дополнительные сведения см. в статье Подготовка к управлению обновлениями программного обеспечения.

Сведения о вызове примера кода см. в разделе Вызов фрагментов кода Configuration Manager.


Sub ConfigureWSUSSettings(swbemServices,         _
                          swbemContext,          _
                          siteCode,              _
                          newDefaultWSUSIISPort, _
                          newSSLDefaultWSUS,     _
                          newDefaultWSUSIISSSLPort)

    ' Load site control file and get the SMS_WSUS_CONFIGURATION_MANAGER component section.
    swbemServices.ExecMethod "SMS_SiteControlFile.Filetype=1,Sitecode=""" & siteCode & """", "Refresh", , , swbemContext

    Query = "SELECT * FROM SMS_SCI_Component " & _
            "WHERE ComponentName = 'SMS_WSUS_CONFIGURATION_MANAGER' " & _
            "AND SiteCode = '" & siteCode & "'"

    Set SCIComponentSet = swbemServices.ExecQuery(Query, ,wbemFlagForwardOnly Or wbemFlagReturnImmediately, swbemContext)

    ' Only one instance is returned from the query.
    For Each SCIComponent In SCIComponentSet

        ' Loop through the array of embedded SMS_EmbeddedProperty instances.
        For Each vProperty In SCIComponent.Props

            ' Display the WSUS server name.
            If vProperty.PropertyName = "DefaultWSUS" Then
                wscript.echo " "
                wscript.echo vProperty.PropertyName & " Server: " & vProperty.Value2
            End If

            ' Setting: DefaultWSUSIISPort.
            If vProperty.PropertyName = "DefaultWSUSIISPort" Then
                wscript.echo " "
                wscript.echo vProperty.PropertyName
                wscript.echo "Current value " &  vProperty.Value

                ' Modify the value.
                vProperty.Value = newDefaultWSUSIISPort
                wscript.echo "New value " & newDefaultWSUSIISPort
            End If

            ' Setting: SSLDefaultWSUS.
            If vProperty.PropertyName = "SSLDefaultWSUS" Then
                wscript.echo " "
                wscript.echo vProperty.PropertyName
                wscript.echo "Current value " &  vProperty.Value

                ' Modify the value.
                vProperty.Value = newSSLDefaultWSUS
                wscript.echo "New value " & newSSLDefaultWSUS
            End If

            ' Setting: DefaultWSUSIISSSLPort.
            If vProperty.PropertyName = "DefaultWSUSIISSSLPort" Then
                wscript.echo " "
                wscript.echo vProperty.PropertyName
                wscript.echo "Current value " &  vProperty.Value

                ' Modify the value.
                vProperty.Value = newDefaultWSUSIISSSLPort
                wscript.echo "New value " & newDefaultWSUSIISSSLPort
            End If

        Next

             ' Update the component in your copy of the site control file. Get the path
             ' to the updated object, which could be used later to retrieve the instance.
             Set SCICompPath = SCIComponent.Put_(wbemChangeFlagUpdateOnly, swbemContext)
    Next

    ' Commit the change to the actual site control file.
    Set InParams = swbemServices.Get("SMS_SiteControlFile").Methods_("CommitSCF").InParameters.SpawnInstance_
    InParams.SiteCode = siteCode
    swbemServices.ExecMethod "SMS_SiteControlFile", "CommitSCF", InParams, , swbemContext

End Sub


public void ConfigureWSUSSettings(WqlConnectionManager connection,
                                    string siteCode,
                                    string SUPServerName,
                                    string newDefaultWSUSIISPort,
                                    string newSSLDefaultWSUS,
                                    string newDefaultWSUSIISSSLPort)
{
    try
    {
        // Connect to SMS_WSUS_CONFIGURATION_MANAGER section of the site control file.
        IResultObject siteDefinition = connection.GetInstance(@"SMS_SCI_Component.FileType=2,ItemType='Component',SiteCode='" + siteCode + "',ItemName='SMS_WSUS_CONFIGURATION_MANAGER|" + SUPServerName + "'");
        foreach (KeyValuePair<string, IResultObject> kvp in siteDefinition.EmbeddedProperties)
        {
            // Temporary copy of the embedded properties.
            Dictionary<string, IResultObject> embeddedProperties = siteDefinition.EmbeddedProperties;

            // Display the WSUS server name.
            if (kvp.Value.PropertyList["PropertyName"] == "DefaultWSUS")
            {
                Console.WriteLine();
                Console.WriteLine(kvp.Value.PropertyList["PropertyName"] + " Server");
                Console.WriteLine("Server name: " + embeddedProperties["DefaultWSUS"]["Value2"].StringValue);
            }

            // Setting: DefaultWSUSIISPort.
            if (kvp.Value.PropertyList["PropertyName"] == "DefaultWSUSIISPort")
            {
                Console.WriteLine();
                Console.WriteLine(kvp.Value.PropertyList["PropertyName"]);
                Console.WriteLine("Current value: " + embeddedProperties["DefaultWSUSIISPort"]["Value"].StringValue);

                // Change the value by using the newDefaultWSUSIISPort value passed that is in.
                embeddedProperties["DefaultWSUSIISPort"]["Value"].StringValue = newDefaultWSUSIISPort;
                Console.WriteLine("New value    : " + newDefaultWSUSIISPort);
            }

            // Setting: SSLDefaultWSUS.
            if (kvp.Value.PropertyList["PropertyName"] == "SSLDefaultWSUS")
            {
                Console.WriteLine();
                Console.WriteLine(kvp.Value.PropertyList["PropertyName"]);
                Console.WriteLine("Current value: " + embeddedProperties["SSLDefaultWSUS"]["Value"].StringValue);

                // Change the value by using the newSSLDefaultWSUS value that is passed in.
                embeddedProperties["SSLDefaultWSUS"]["Value"].StringValue = newSSLDefaultWSUS;
                Console.WriteLine("New value    : " + newSSLDefaultWSUS);
            }

            // Setting: DefaultWSUSIISSSLPort.
            if (kvp.Value.PropertyList["PropertyName"] == "DefaultWSUSIISSSLPort")
            {
                Console.WriteLine();
                Console.WriteLine(kvp.Value.PropertyList["PropertyName"]);
                Console.WriteLine("Current value: " + embeddedProperties["DefaultWSUSIISSSLPort"]["Value"].StringValue);

                // Change the value by using the newDefaultWSUSIISSSLPort value that is passed in.
                embeddedProperties["DefaultWSUSIISSSLPort"]["Value"].StringValue = newDefaultWSUSIISSSLPort;
                Console.WriteLine("New value    : " + newDefaultWSUSIISSSLPort);
            }

            // Store the settings that have changed.
            siteDefinition.EmbeddedProperties = embeddedProperties;
        }

        // Save the settings.
        siteDefinition.Put();

    }
    catch (SmsException ex)
    {
        Console.WriteLine("Failed. Error: " + ex.InnerException.Message);
        throw;
    }
}

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

Параметр Тип Описание
connection -Управляемых: WqlConnectionManager
— VBScript: SWbemServices
Допустимое подключение к поставщику SMS.
swbemContext — VBScript: SWbemContext Допустимый объект контекста. Дополнительные сведения см. в статье Добавление квалификатора контекста Configuration Manager с помощью WMI.
siteCode -Управляемых: String
— VBScript: String
Код сайта.
SUPServerName -Управляемых: String
— VBScript: String
Имя сервера точки обновления программного обеспечения.
newDefaultWSUSIISPort -Управляемых: String
— VBScript: String
Новый порт служб IIS по умолчанию.
newSSLDefaultWSUS -Управляемых: String
— VBScript: String
Определяет, следует ли использовать протокол SSL.
newDefaultWSUSIISSSLPort -Управляемых: String
— VBScript: String
Определяет ssl-порт WSUS IIS по умолчанию.

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

Для этого примера на C# требуется следующее:

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

System;

System.Collections.Generic;

System.Text

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

adminui.wqlqueryengine

microsoft.configurationmanagement.managementprovider

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

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

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

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

См. также

Сведения о программных Обновления Настройка и настройка. Сведения о файле управления сайтом Configuration Manager. Чтение и запись в файл элемента управления сайтом Configuration Manager с помощью управляемого кода. Чтение и запись в Configuration Manager Файл элемента управления сайтом с помощью класса WMISMS_SCI_Component server WMI. Добавление квалификатора контекста Configuration Manager с помощью WMI