DSC 可用于在 Windows 10 工作站上配置 IIS

DSC 可用于在 Windows 10 工作站上配置 IIS

我在网上找不到这个,但对我来说这似乎是一个明显的用例

是否可以在 Windows 10 工作站上运行 Windows 所需状态配置/DSC?

例如,在开发机器上使用 DSC 以“推送”模式针对本地主机设置 IIS 网站

答案1

不。

互联网暗示这可能是值得尝试的,但缺少好的简单的快速入门指南,所以这就是我尝试的:

# TestDSC.ps1
Configuration TestDSC
{
    Import-DscResource -Module PSDesiredStateConfiguration, xWebAdministration

    WindowsFeature IIS
    {
        Ensure          = "Present"
        Name            = "Web-Server"
    }
    Node localhost
    {
        xWebsite DefaultSite
        {
            Ensure          = "Present"
            Name            = "Default Web Site"
            State           = "Stopped"
            PhysicalPath    = "C:\inetpub\wwwroot"
        }
    }
}

然后在 Powershell 中运行:

 .\TestDSC.ps1
 TestDSC

这应该localhost.mofTestDSC目录中输出

以推送模式运行:

Start-DscConfiguration -Wait -Verbose TestDSC

失败,无温控器

客户端无法连接到请求中指定的目标。请验证目标上的服务是否正在运行并接受请求。查阅目标上运行的 WS-Management 服务的日志和文档,最常见的是 IIS 或 WinRM。如果目标是 WinRM 服务,请在目标上运行以下命令来分析和配置 WinRM 服务:“winrm quickconfig”。

但是让我们尝试这个有趣的解决方法:https://blogs.technet.microsoft.com/pstips/2017/03/01/using-dsc-with-the-winrm-service-disabled/

$configData = [byte[]][System.IO.File]::ReadAllBytes((Resolve-Path -Path '.\TestDSC\localhost.mof'))
Invoke-CimMethod -Namespace root/Microsoft/Windows/DesiredStateConfiguration -ClassName MSFT_DSCLocalConfigurationManager -Method SendConfigurationApply -Arguments @{ConfigurationData = $configData; force = $true}

哦不,为什么你不先告诉我呢!

PowerShell DSC 资源 MSFT_RoleResource 无法执行 Test-TargetResource 功能,并显示错误消息:使用 PowerShell 所需状态配置安装角色和功能仅在服务器 SKU 上受支持。客户端 SKU 不支持。

Windows 10 是不是服务器 SKU

希望这能帮助人们节省时间,大约在 2018 年,我不建议浪费你的时间进一步调查,但期待微软的更新(提示提示

答案2

我知道我入行太晚了,但我在研究 IIS 和 DSC 时偶然发现了这个问题,觉得给出的答案相当具有误导性。作为一个使用 DSC 管理 Windows 桌面和服务器的人,我可以很肯定地说,Win8/Server 2012 之后的所有 Windows SKU 都支持 DSC。句号。

Windows 7、8、8.1、10、11?是的。Windows
Server 2012 - 2019 及以后?也是!各种 Windows 容器?当然!

问题中给出的用例实际上是使用 DSC 的更有效方法之一。如果你想用 IIS 构建一个开发者工作站,你可以绝对地最好为其编写一个 DSC 配置。然后,您可以将此 DSC 配置应用于本地工作站、VM 甚至 Windows 容器,以供团队进行开发工作。

确实,您无法使用“WindowsFeature”DSC 资源在 Windows 10 桌面上安装 IIS。但这与 Windows 10 上的 DSC 支持无关,甚至与支持 IIS 无关。这与两个不同模块之间的奇怪分裂有关,这两个模块的功能几乎相同,但出于某种原因却有所不同。

在 Windows Server 中,“ServerManager”模块允许您访问“Install-WindowsFeature”。这是您安装 IIS 功能时使用的,也是“WindowsFeature”DSC 资源在服务器上安装/删除功能时使用的。

在 Windows 桌面中,“DISM”模块允许您访问“Enable-WindowsOptionalFeature”。这用于安装 Hyper-V 的客户端版本或 Windows 10 IIS 功能。这也是“WindowsOptionalFeature”资源用于执行相同功能的方法。

它们为什么不同?为什么微软不将这两个模块合并为一个适用于两个 SKU 的模块?你的猜测和我的一样。但是,作为一个以此为生的人,我再说一遍,是的,你可以在桌面上使用 DSC。

相关内容