ayseff
9/24/2014 - 12:11 AM

Resolve ConfigurationData updates

Resolve ConfigurationData updates

    if ($null -eq $ConfigurationData)
    {
        Write-Verbose ""
        Write-Verbose "Resolving ConfigurationData"

        $ConfigurationData = $PSCmdlet.GetVariableValue('ConfigurationData')

        if ($ConfigurationData -isnot [hashtable])
        {
            throw 'Failed to resolve ConfigurationData.  Please confirm that $ConfigurationData is property set in a scope above this Resolve-DscConfigurationProperty or passed to Resolve-DscConfigurationProperty via the ConfigurationData parameter.'
        }
    }
	if (-not $PSBoundParameters.ContainsKey('ConfigurationData')) {
		Write-Verbose ""
		Write-Verbose "Resolving ConfigurationData"
		$ScopeToCheck = 1
		do {
			try {
				$ConfigurationData = Get-Variable -scope $ScopeToCheck -Name 'ConfigurationData' -ValueOnly -ErrorAction Stop
			}
			catch {
				Write-Verbose "`t`tNothing in scope $ScopeToCheck for ConfigurationData"
			}
			$ScopeToCheck++
		} until ($ScopeToCheck -gt 5 -or ($ConfigurationData -is [hashtable] -and $ConfigurationData.Keys.Count -gt 0))

		if ($ConfigurationData -isnot [hashtable] -or $ConfigurationData.Keys.Count -eq 0) {
			throw 'Failed to resolve ConfigurationData.  Please confirm that $ConfigurationData is property set in a scope above this Resolve-DscConfigurationProperty or passed to Resolve-DscConfigurationProperty via the ConfigurationData parameter.'
		}
		else {
			$PSBoundParameters.Add('ConfigurationData', $ConfigurationData)
		}
	}