是否可以从当前系统构建创建 PowerShell DSC 配置文件?

是否可以从当前系统构建创建 PowerShell DSC 配置文件?

有没有办法从当前系统构建 PowerShell 所需状态配置 (DSC) 配置文件?而不是从头开始构建整个文件?

答案1

不是直接的。您必须单独处理要模块化的每种资源。

例如,如果你想模拟现有的窗口角色和功能,你可以编写类似

Get-WindowsFeature -ComputerName ny-web01 | 
? installed |
% {$t = ''} { $t += @"

WindowsFeature "Role-$($_.Name)"
{
    Name = '$($_.Name)'
    Ensure = 'Present'
"@ 
    if ($_.dependson)
    {
        $t += @"
    DependsOn = '[WindowsFeature]Role-$($_.Name)'
"@
    }

    $t += @'

}
'@
} {$t}

对于您想要控制的事物,每种资源都是独一无二的。

答案2

如果你有一个网络服务器,你可以使用期望状态生成器为您的网站、应用程序池和 IIS 组件创建配置。

虽然不是全部,但它可以给你一个良好的开端。

答案3

现在有一种东西叫反向差示扫描量热法它允许您基于现有系统创建 DSC 配置文件。它仍然不适用于系统的所有方面,但支持许多常见场景。

答案4

我创建了一个名为 DscBaseline 的 PowerShell 模块,因为我不想从头开始创建这些配置。它根据启动它的系统构建 DSC 配置。可从以下位置获取:

https://github.com/phbits/DscBaseline

https://www.powershellgallery.com/packages/DscBaseline/1.0

更多信息请访问自述文件.md以下摘录了相关报道。

覆盖范围

DscBaseline 生成以下内容的配置。

  1. 安全策略 - 帐户策略 (安全策略Dsc
  2. 安全策略 - 安全选项 (安全策略Dsc
  3. 安全策略 - 用户权限分配 (安全策略Dsc
  4. 审计政策 (审计政策Dsc
  5. 网络 (网络Dsc
  6. 服务 (PSDsc资源
  7. *组策略 -实验。详情请参阅已知问题。(PSDsc资源

相关内容