什么是资源?

资源为 DSC 配置提供构建基块。

资源公开可配置的属性,并包含本地配置管理器 (LCM) 调用以“使其如此”的 PowerShell 脚本函数。

系统内置资源

可在PowerShell命令窗中输入Get-DSCResource查看系统内置的资源

(在命令窗中输入命令的时候,可使用tab键进行补全提示)

我们可以看到内置了一些常用的资源,比如File、User等

第三资源

系统内置的资源很可能不能满足我们的需求,我们可以在公共的hub中下载,地址:https://www.powershellgallery.com/

其实这东西和nuget(https://www.nuget.org/)非常的相似,你也可以自己写资源上传,供大家下载使用。

自定义资源

有些时候,系统内置的资源和第三方资源仍然不满足我们的需求,就需要根据具体的业务进行定制资源。

首先需要明白一点:PowerShell DSC配置是围绕 Get 、Test 和 Set 构建的。

以下我们使用基于 MOF 编写自定义 DSC 资源

文件夹结构

$env:ProgramFiles\WindowsPowerShell\Modules (folder)
|- MyDscResources (folder)
|- DSCResources (folder)
|- Demo_IISWebsite (folder)
|- Demo_IISWebsite.psd1 (file, optional)
|- Demo_IISWebsite.psm1 (file, required)
|- Demo_IISWebsite.schema.mof (file, required)

.schema.mof 编写

简单来讲,就是定义当前资源的参数

[ClassVersion("1.0.0"), FriendlyName("Website")]
class Demo_IISWebsite : OMI_BaseResource
{
[Key] string Name;
[Required] string PhysicalPath;
[write,ValueMap{"Present", "Absent"},Values{"Present", "Absent"}] string Ensure;
[write,ValueMap{"Started","Stopped"},Values{"Started", "Stopped"}] string State;
[write] string Protocol[];
[write] string BindingInfo[];
[write] string ApplicationPool;
[read] string ID;
};

.psm1文件编写

资源脚本实现资源的逻辑。 此模块中必须包含三个函数,名称如下:

function Get-TargetResource{
//todo
}
function Set-TargetResource{
//todo
}
function Test-TargetResource{
//todo
}

.psd1文件编写

@{
ModuleVersion = '1.0'
GUID = '6AB5ED33-E923-41d8-A3A4-5ADDA2B301DE'
Author = 'Contoso'
CompanyName = 'Contoso'
Copyright = 'Contoso. All rights reserved.'
FunctionsToExport = @("Get-TargetResource", "Set-TargetResource", "Test-TargetResource")
}

参考

https://docs.microsoft.com/zh-cn/powershell/dsc/resources/resources

最新文章

  1. 原来scanf读入字符串还能这样..
  2. SPSS数据分析—两阶段最小二乘法
  3. orace 取昨天凌晨的日期
  4. Oracle 创建表空间一边串过程
  5. select..in(参数化) 解决注入式问题
  6. Linux命令详解之—pwd命令
  7. pre 随变化的样式
  8. ACE_linux:任务 & 命令(Task and Command)
  9. 音频播放AVFoundation框架
  10. 监听UITabBarItem来拦截是否要跳转
  11. 1218.1——OC中的常见关键字及一些基本方法
  12. .c和.h文件的区别(头文件与之实现文件的的关系~ )
  13. mysql数据库开启慢查询日志
  14. 使用zabbix_agent监控第一台linux服务器
  15. Elasticsearch 学习(二):安装和使用
  16. Python 列表(List)
  17. redis-LinkedList
  18. zabbix 监控基础
  19. EXCEL这样根据某单元格的内容来改变整行颜色
  20. 转载:使用Nginx的必备软件(1.3.2)《深入理解Nginx》(陶辉)

热门文章

  1. MySQL select 查询之分组和过滤
  2. 【RAC】oracle11g r2 rac环境删除节点步骤
  3. salesforce零基础学习(一百)Mobile Device Tracking
  4. 从零开始学spring源码之xml解析(一):入门
  5. JavaScript中函数的调用!
  6. CACTI优化-流量接口统计total输入和输出流量数据
  7. ADB 基本命令
  8. CentOS 镜像下载地址
  9. 进程的创建-multiprocessing
  10. mysql和oracle的字符拼接方法