检查DSC资源是否已被修改,如果是,请重新启动

时间:2017-12-15 12:10:17

标签: azure dsc

在ARM模板构建VM后,我有一个在Azure自动化中运行的DSC脚本。它做了很多东西,其中一些我将展示,包括连接到域。在域之前,脚本的某些部分将更改实际上不会生效的服务器设置'直到机器重新启动。我有加入域部分使用这些作为DependsOn,所以当机器加入域我知道它将重新启动并完全应用这些设置。

但是,前几天我注意到这些设置在以后(部署服务器后几天)发生了变化,并且DSC建议它没有配置,因为它在应用'重新启动后没有重新启动构造'脚本的一部分。

我很想知道是否有DSC资源会检查ResourceX和ResourceY是否被修改/应用/更改,如果是,请重新启动计算机以使更改生效。

Registry DisableUAC
# Only fully applied after a reboot if changed
{
    Ensure = "Present"
    Key = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
    ValueName = "EnableLUA"
    ValueData = "0"
    ValueType = "Dword"
}


Script LocationCulture
# Only fully applied after a reboot if changed
{
    GetScript =
    {
        Get-Culture | select -ExpandProperty Name
    }

    TestScript =
    {
        If (!((Get-Culture | select -ExpandProperty Name) -eq "en-GB")) {
            $false
        } else {
            $true
        }
    }

    SetScript =
    {
        Set-Culture en-GB
    }
}

这是四个中的两个,需要重新启动才能应用。让机器只重启一次而不是每次重新校准后都是好的。

1 个答案:

答案 0 :(得分:0)

我不认为有这样的资源,但如果资源在VM上明确设置了重启标志,你可以使用xPendingReboot

    xPendingReboot Reboot1
    { 
        Name = 'BeforeSoftwareInstall'
    }
    LocalConfigurationManager
    {
        RebootNodeIfNeeded = $True
    }