Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В следующем примере показано, как задать свойство флага "распространение по запросу" существующего пакета с помощью класса WMI SMS_Package server в Configuration Manager.
Установка флага распространения по запросу
Настройте подключение к поставщику SMS. Дополнительные сведения см. в статье Основы поставщика SMS.
Загрузите существующий объект пакета с помощью класса WMI сервера SMS_Package .
Заполните свойство флага пакета.
Сохраните свойства пакета и нового пакета.
Пример
В следующем примере метода устанавливается флаг "распространение по запросу" для пакета.
Сведения о вызове примера кода см. в разделе Вызов фрагментов кода Configuration Manager.
Sub SetDistributeOnDemandFlag(connection, _
existingPackageID)
' Define a constant with the hexadecimal value for the DISTRIBUTE_ON_DEMAND.
DISTRIBUTE_ON_DEMAND = &H40000000
' Get the specific package instance to modify.
Set packageToModify = connection.Get("SMS_Package.PackageID='" & existingpackageID & "'")
' List the existing property values.
Wscript.Echo " "
Wscript.Echo "Values before change: "
Wscript.Echo "--------------------- "
Wscript.Echo "Package Name: " & packageToModify.Name
Wscript.Echo "Package Flags (integer): " & packageToModify.PkgFlags
' Set the new property value.
packageToModify.PkgFlags = packageToModify.PkgFlags OR DISTRIBUTE_ON_DEMAND
' Save the package.
packageToModify.Put_
' Output the new property values.
Wscript.Echo " "
Wscript.Echo "Values after change: "
Wscript.Echo "--------------------- "
Wscript.Echo "Package Name: " & packageToModify.Name
Wscript.Echo "Package Flags (integer): " & packageToModify.PkgFlags
End Sub
public void SetDistributeOnDemandFlag(WqlConnectionManager connection,
string existingPackageID)
{
// Define a constant with the hexadecimal value for DISTRIBUTE_ON_DEMAND.
const Int32 DISTRIBUTE_ON_DEMAND = 0x40000000;
try
{
// Get the specific package instance to modify.
IResultObject packageToModify = connection.GetInstance(@"SMS_Package.PackageID='" + existingPackageID + "'");
// List the existing property values.
Console.WriteLine();
Console.WriteLine("Values before change:");
Console.WriteLine("_____________________");
Console.WriteLine("Package Name: " + packageToModify["Name"].StringValue);
Console.WriteLine("Package Flags (integer): " + packageToModify["PkgFlags"].IntegerValue);
// Modify the PkgFlags value to include the DISTRIBUTE_ON_DEMAND value.
packageToModify["PkgFlags"].IntegerValue = packageToModify["PkgFlags"].IntegerValue | DISTRIBUTE_ON_DEMAND;
// Save the package with the new value.
packageToModify.Put();
// Reload the package to verify the change.
packageToModify.Get();
// List the existing (modified) property values.
Console.WriteLine();
Console.WriteLine("Values after change:");
Console.WriteLine("_____________________");
Console.WriteLine("Package Name: " + packageToModify["Name"].StringValue);
Console.WriteLine("Package Flags (integer): " + packageToModify["PkgFlags"].IntegerValue);
}
catch (SmsException ex)
{
Console.WriteLine("Failed to modify package. Error: " + ex.Message);
throw;
}
}
Метод примера имеет следующие параметры:
Параметр | Тип | Описание |
---|---|---|
connection swebemServices |
-Управляемых: WqlConnectionManager — VBScript: SWbemServices |
Допустимое подключение к поставщику SMS. |
existingPackageID |
-Управляемых: String — VBScript: String |
Идентификатор пакета. |
Компиляция программы
Для примера C# требуется следующее:
Пространства имен
System;
System.Collections.Generic;
System.ComponentModel
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assembly
adminui.wqlqueryengine
microsoft.configurationmanagement.managementprovider
Надежное программирование
Дополнительные сведения об обработке ошибок см. в разделе Сведения об ошибках Configuration Manager.
Безопасность .NET Framework
Дополнительные сведения о защите приложений Configuration Manager см. в статье Configuration Manager администрирование на основе ролей.
См. также
Обзор распространения программного обеспечения. Общие сведения Об объектахКак подключиться к поставщику SMS в Configuration Manager с помощью управляемого кода. Подключение к поставщику SMS в Configuration Manager с помощьюкласса WMI SMS_Package server WMI