TLDR;动态创建DSC配置文件的最佳方法是什么?
我的任务是维护包含权限的复杂文件夹结构.目前,这是使用自定义PowerShell模块完成的.当对文件夹结构本身进行更改时会出现问题.
使用DSC将消除问题的合规性方面.手动生成20k文件夹的DSC配置绝对是不可能的.我想通过PowerShell从一些输入创建DSC配置.这样,可以及时引入更改,并在DSC配置审核后应用.
或者我完全走错了轨道,我可以在DSC配置中从输入生成结构?
最佳答案 编写DSC配置时,它是一个在设计时执行的脚本,最终生成MOF文件.所以你可以这样做:
Configuration Folders {
Get-Content 'myfolderlist.txt' | ForEach-Object {
File $($_ -replace '\\','_')
{
DestinationPath = $_
Ensure = "Present"
}
}
}
这不涉及权限,但它显示了如何在DSC配置中使用循环.这里要记住的重要一点是,它将做的是在设计时生成具有20k文件资源的静态配置(MOF)文件.当DSC运行时,循环不会运行(也不存在).
DSC并不是最快的事情.对20,000个资源进行测试/设置可能非常缓慢且资源密集.我觉得这可能不是工作的工具.
或者,您可以创建一个自定义DSC资源,该资源执行测试和设置文件夹结构和权限的所有逻辑,因此它在一个资源中发生.
从本质上讲,这是一个美化的计划任务,但这可能没问题,特别是如果你想在更广泛的意义上使用DSC.如果你想看看那些,那里有很多关于如何创建自定义资源的文章(和书籍).