码迷,mamicode.com
首页 > Windows程序 > 详细

使用C#构建自定义DSC Resource

时间:2014-11-18 12:00:27      阅读:298      评论:0      收藏:0      [点我收藏+]

标签:布尔   检测   用户   资源   powershell   

准备先决条件
1. Visual Studio 推荐2012 或者更高
2. PowerShell 4.0
3. MOF文件
概述
1. 在使用C#构建DSC 资源时同样需要MOF(即DSC资源架构文件)为生成该文件我们可以使用TechNet上发布的xDSCResource工具进行生成
2. 在使用C#构建DSC 资源时同样需要需要以下三条Cmdlet 即Get-TargetResource,Set- TargetResource,Test- TargetResource
3. Get-TargetResource  用来获取当前资源状态,此命令必须返回哈希字典即 System.Collections.Hashtable
4. Test-TargetResource  用来检测当前资源状态与用户输入是否一致,此命令必须返回布尔类型 即 System.Boolean
5. Set- TargetResource  用来完成用户输入状态,此命令无需返回
创建MOF 架构文件
本例中我们将实现系统自带的File 资源 资源名称为xFiles
下面是架构文件(文件名 xFiles.schema.mof)

 [ClassVersion("1.0.0.0"), FriendlyName("xFiles")]
class xFiles : OMI_BaseResource
{
 [Key] String Ensure;
 [Required] String Name;
 [Required] String Path;
};
本架构中仅仅定义了三个参数 Ensure,Name,Path 且均为必须
实现架构
打开VS 创建C#类库项目

bubuko.com,布布扣
 

同时更名程序集名称为DSC 资源名称 即xFiles

bubuko.com,布布扣
 添加对System.Management.Automation.dll 引用
路径为 (.net 版本不同文件路径位置可能稍有变化)
C:WindowsMicrosoft.NETassemblyGAC_MSILSystem.Management.Automationv

4.0_3.0.0.0__31bf3856ad364e35System.Management.Automation.dll

实现Get-TargetResource

bubuko.com,布布扣


实现Test-TargetResource 请注意Test-TargetResource 要求返回布尔类型
但是由于重写 ProcessRecord() 方法必须要求Void 所以在我们判断资源状态时候
使用WriteObject() 方法 返回布尔类型

bubuko.com,布布扣

使用WriteObject() 方法 返回布尔类型
 bubuko.com,布布扣

实现Set-TargetResource
 此后生成解决方案
将生成的xFiles.DLL 与 xFiles.schema.mof 一同放在
C:WindowsSystem32WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationDSCResourcesxFiles下如下图:

bubuko.com,布布扣
 

 此后编写DSC 配置文件


Configuration aaa
{
    node LocalHost
    {
        xFiles bbb
        {
            Name = "1.txt"
            Path = "c:2"
            Ensure = "absent"
        }
    }
}
 
测试
分别测试资源状态
应用配置(全部配置要求当前都不满足)

bubuko.com,布布扣
 
应用配置(部分配置状态满足本示例中 c:2 目录存在)

bubuko.com,布布扣
 

撤销配置(全部配置要求满足 即全部需要撤销配置当前均存在)

bubuko.com,布布扣
 


撤销配置(部分配置状态满足 即 c:21.txt 不存在)

bubuko.com,布布扣


 本文已于2014-08-06同步在www.ilync.cn发布

本文出自 “自动化世界” 博客,谢绝转载!

使用C#构建自定义DSC Resource

标签:布尔   检测   用户   资源   powershell   

原文地址:http://strikene.blog.51cto.com/5877668/1577726

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!