在 Configuration Manager 中,若要创建自定义作控件,请使用以下两个类创建 Windows 控件:
| 类 | 说明 |
|---|---|
| SmsOsdEditorPageControl | 自定义作控件。 从此类派生,以实现任务序列编辑器中显示的自定义作控件。 |
| TaskSequenceOptionControl | 自定义作的选项控件。 可以从此类派生,以创建任务序列编辑器中显示的自定义作选项页。 |
这些过程演示如何使用 Visual Studio 2005 创建Configuration Manager作系统部署控制程序集。 当它加载到任务序列编辑器时,控件将显示一个属性页,其中包含用于为自定义作设置用户名作变量的文本框。
完成这些步骤后,执行以下主题中的步骤, (MOF) 文件创建自定义作托管对象格式,并使用自定义作控件。
如何为Configuration Manager自定义作创建 MOF 文件
注意
有关在部署中使用自定义作的信息,请参阅关于Configuration Manager自定义作客户端应用程序
控件 Visual Studio 项目
以下过程创建自定义作控件项目。
创建控件
在 Visual Studio 2010 的“ 文件 ”菜单上,指向“ 新建”,然后单击“ 项目 ”打开“ 新建项目 ”对话框。
从 Visual C#、 Windows 项目的列表中,选择 “Windows 控件库 ”项目模板,然后键入
ConfigMgrTSAction“ 名称 ”框。单击“ 确定” 创建 Visual Studio 项目。
在解决方案资源管理器中,右键单击“UserControl1.cs”,单击“重命名”,然后将名称更改为
ConfigMgrTSActionControl.cs。在“解决方案资源管理器”中,右键单击“引用”,然后单击“添加引用”。
在“添加引用”对话框中,单击“浏览”选项卡,导航到 %ProgramFiles%\Microsoft Configuration Manager\AdminUI\bin,然后选择以下程序集:
Adminui.osdcommon.dll
Adminui.tasksequenceeditor.dll
Adminui.wqlqueryengine.dll
Microsoft.configurationmanagement.exe
Microsoft.configurationmanagement.managementprovider.dll
单击“ 确定 ”将程序集添加为项目引用。
在解决方案资源管理器中,右键单击“ConfigMgrTSActionControl.cs”,然后单击“查看代码”。
添加以下代码以包含所需的命名空间:
using Microsoft.ConfigurationManagement.AdminConsole; using Microsoft.ConfigurationManagement.AdminConsole.TaskSequenceEditor;更改 类 ConfigMgrTSActionControl ,使其派生自 SmsOsdEditorPageControl。
在 ConfigMgrTSActionControl.cs 中,将以下新构造函数添加到 ConfigMgrTSActionControl 类:
public ConfigMgrTSActionControl(SmsPageData data) : base(data) { InitializeComponent(); }添加以下方法来初始化控件:
public override void InitializePageControl() { base.InitializePageControl(); }
创建选项控件
以下过程创建声明自定义作的选项控件的代码。 此实现使用默认选项控件。
创建选项控件
在 ConfigMgrTSActionControl.cs 在 ConfigMgrTSAction 命名空间中添加以下新类:
public class ConfigureTSActionOptions : TaskSequenceOptionControl { public ConfigureTSActionOptions() : base() { } public ConfigureTSActionOptions(SmsPageData data) : base(data) { } }
自定义用户界面
以下过程添加文本框和代码来管理作数据。
添加用户界面
在解决方案资源管理器中,右键单击“ConfigMgrTSActionControl.cs”,然后单击“查看Designer”。
在 “工具箱”中,单击“ 通用控件 ”选项卡,然后双击“ TextBox”。 名为 的
textBox1按钮将添加到“用户控件”Designer上的控件。双击文本框。 名为 的
textBox1_TextChanged事件处理程序将添加到类 ConfigMgrTSActionControl。 添加以下代码以确保将更改保存到作的属性管理器中:SetDirtyFlag(true);在类 ConfigMgrTSActionControl 中,添加以下方法,将文本框值
User写入自定义作 MOF 中定义的属性。 单击“ 确定” 或“ 应用 ”按钮时,将调用此按钮。protected override bool ApplyChanges(out Control errorControl, out bool showError) { // You can check the error here and return false. if (this.HasError(out errorControl) == true) { this.ShowMessageBox( this.GetErrorString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); errorControl = null; showError = true; return false; } this.PropertyManager["User"].StringValue = textBox1.Text; return base.ApplyChanges(out errorControl, out showError); }在控件的设计视图中,双击控件以创建 方法ConfigMgrTSActionControl_Load。
将以下代码添加到 方法。 此代码加载具有现有 User 值的文本框。 在创建任务序列作后对其进行编辑时,会发生这种情况。
textBox1.Text = this.PropertyManager["User"].StringValue;
资源字符串
以下过程添加用于在任务序列编辑器中显示自定义作名称的资源字符串。
添加资源字符串
在“解决方案资源管理器”的“项目”菜单上,单击“属性”。
单击“ 资源 ”选项卡。如果资源文件不存在,请选择“ 资源 ”选项卡上显示的消息来创建该文件。
在“资源Designer”工具栏上,指向资源视图下拉列表,单击箭头,并确保将其设置为“字符串” (这是默认) 。 此时会显示一个设置网格,其中显示由资源Designer实例维护的字符串。
单击网格中最后一行的 “名称” 列,该列标有星号 (*) 。
在 “名称” 列中,输入
DefaultDisplay_ConfigMgrTSAction作为字符串名称。在 “值 ”列中,输入字符串 “自定义作”。 这是任务序列作列表中显示的字符串。
单击网格中最后一行的 “名称” 列,该列标有星号 (*) 。
在 “名称” 列中,输入
ConfigMgrTSAction作为字符串名称。在 “值 ”列中,输入
Custom Action。 这是添加自定义作时显示的字符串。
部署程序集
此过程生成已创建的程序集并将其复制到Configuration Manager控制台程序集文件夹。 有关部署Configuration Manager控制台扩展的重要信息,请参阅关于Configuration Manager管理员控制台扩展部署。
部署程序集
生成项目。 Visual Studio 将程序集创建为 \Visual Studio 2005\Projects\ConfigMgrControl\ConfigMgrTSAction\bin\Debug\ConfigMgrTSActionControl.dll。
将程序集复制到文件夹 %ProgramFiles%\Microsoft Configuration Manager\AdminUI\bin。
另请参阅
关于Configuration Manager控制台扩展Configuration Manager控制台扩展部署如何为Configuration Manager自定义作创建 MOF 文件如何使用Configuration Manager自定义行动