准备先决条件
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#类库项目
同时更名程序集名称为DSC 资源名称
即xFiles
添加对System.Management.Automation.dll
引用
路径为
(.net 版本不同文件路径位置可能稍有变化)
C:WindowsMicrosoft.NETassemblyGAC_MSILSystem.Management.Automationv
4.0_3.0.0.0__31bf3856ad364e35System.Management.Automation.dll
实现Get-TargetResource
实现Test-TargetResource
请注意Test-TargetResource 要求返回布尔类型
但是由于重写 ProcessRecord() 方法必须要求Void
所以在我们判断资源状态时候
使用WriteObject() 方法
返回布尔类型
使用WriteObject() 方法
返回布尔类型
实现Set-TargetResource
此后生成解决方案
将生成的xFiles.DLL 与
xFiles.schema.mof 一同放在
C:WindowsSystem32WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationDSCResourcesxFiles下如下图:
此后编写DSC 配置文件
Configuration aaa
{
node LocalHost
{
xFiles bbb
{
Name = "1.txt"
Path = "c:2"
Ensure = "absent"
}
}
}
测试
分别测试资源状态
应用配置(全部配置要求当前都不满足)
应用配置(部分配置状态满足本示例中 c:2
目录存在)
撤销配置(全部配置要求满足
即全部需要撤销配置当前均存在)
撤销配置(部分配置状态满足 即 c:21.txt
不存在)
本文已于2014-08-06同步在www.ilync.cn发布