This is because Get-Http is an execute-only operation, which means it will only run if configuration changed. To force execute-only operations to run in configuration plans, you need to specify the execution directive to be always execute, as follows... with executionPolicy=always { ... } Hopefully we can better document this in the future; it's buried in the formal specification.