{"id":1961,"date":"2013-11-21T10:38:00","date_gmt":"2013-11-21T10:38:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/powershell\/2013\/11\/21\/powershell-dsc-resource-for-configuring-pull-server-environment\/"},"modified":"2024-02-23T14:29:12","modified_gmt":"2024-02-23T22:29:12","slug":"powershell-dsc-resource-for-configuring-pull-server-environment","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/powershell\/powershell-dsc-resource-for-configuring-pull-server-environment\/","title":{"rendered":"PowerShell DSC Resource for configuring Pull Server environment"},"content":{"rendered":"<div class=\"WordSection1\">\n<p><strong>UPDATE 2\/6\/2018<\/strong> &#8211; The latest information regarding DSC Pull Service can be found in the DSC documentation using the link &#8211;\n<a href=\"https:\/\/docs.microsoft.com\/en-us\/powershell\/dsc\/pullserver\">https:\/\/docs.microsoft.com\/en-us\/powershell\/dsc\/pullserver<\/a><\/p>\n<p>&#8230;&#8230;&#8230;.<\/p>\n<p><a href=\"http:\/\/technet.microsoft.com\/en-us\/library\/dn249912.aspx\">DSC<\/a> is a PowerShell extension that is part of Windows Server 2012 R2 and Windows 8.1. DSC enables deploying and managing configuration data for software services and managing the environment in which these services run.<\/p>\n<p class=\"MsoNormal\">A DSC Pull Server is a web-based endpoint, with an OData interface. This server allows nodes to \u201cPull\u201d Configuration such as providers on a periodic basis. This functionality is useful in environments where there are a large number of target nodes to configure, and where the target nodes need the right configuration as they come online, and to check periodically for configuration updates.<\/p>\n<p>The \u201cPull\u201d mechanism is a highly scalable mechanism to deploy specific environments on machines.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/6445.image001.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-20359\" src=\"https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/6445.image001.jpg\" alt=\"Image 6445 image001\" width=\"624\" height=\"354\" srcset=\"https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/6445.image001.jpg 624w, https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/6445.image001-300x170.jpg 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><\/a><\/p>\n<p class=\"MsoNormal\">This blog is about the process of setting up a Pull Server using a DSC configuration.<\/p>\n<p class=\"MsoNormal\"><strong><span style=\"text-decoration: underline;\"><span style=\"font-size: 16.0pt; line-height: 105%;\">DSC Configuration and Resource:<\/span><\/span><\/strong><\/p>\n<p class=\"MsoNormal\"><strong>The following configuration enables to setup a Pull\/Compliance Server at a specified IIS endpoint (Port\/Web-Site Name).<\/strong>\nThere is capability to setup HTTP\/HTTPS based endpoints.<\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt; line-height: normal; background: white;\"><a href=\"https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/0537.image002.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-20361\" src=\"https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/0537.image002.png\" alt=\"Image 0537 image002\" width=\"711\" height=\"567\" srcset=\"https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/0537.image002.png 711w, https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/0537.image002-300x239.png 300w\" sizes=\"(max-width: 711px) 100vw, 711px\" \/><\/a><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt; line-height: normal; background: white;\"><strong>MOF for the DSC Resource:<\/strong><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/3733.image003.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-20362\" src=\"https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/3733.image003.png\" alt=\"Image 3733 image003\" width=\"656\" height=\"270\" srcset=\"https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/3733.image003.png 656w, https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/3733.image003-300x123.png 300w\" sizes=\"(max-width: 656px) 100vw, 656px\" \/><\/a><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt; line-height: normal; background: white;\"><strong>Module that implements the DSC *-TargetResource cmdlets:<\/strong><\/p>\n<\/div>\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt; line-height: normal; background: white;\">\n<p><a href=\"https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/4466.image004.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-20363\" src=\"https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/4466.image004.png\" alt=\"Image 4466 image004\" width=\"761\" height=\"415\" srcset=\"https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/4466.image004.png 761w, https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/4466.image004-300x164.png 300w\" sizes=\"(max-width: 761px) 100vw, 761px\" \/><\/a><\/p>\n<div class=\"WordSection1\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt; line-height: normal; background: white;\"><strong>Module for setting up a Management OData (PSWS) IIS Endpoint \u2013 Required for Pull Server:<\/strong><\/p>\n<p class=\"MsoNormal\"><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/30\/2018\/10\/5758.image005.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/30\/2018\/10\/5758.image005.png\" alt=\"\" border=\"0\" \/><\/a><\/p>\n<p class=\"MsoNormal\"><strong><span style=\"text-decoration: underline;\"><span style=\"font-size: 16.0pt; line-height: 105%;\">STEPS:<\/span><\/span><\/strong><\/p>\n<p class=\"MsoNormal\"><strong>Here is a walkthrough of setting up a Pull Server on a Windows Server machine.<\/strong><\/p>\n<p class=\"MsoListParagraph\" style=\"text-indent: -.25in;\">1)Unzip DSCPullServerConfiguration.zip to $env:systemdrive<\/p>\n<p class=\"MsoListParagraph\" style=\"text-indent: -.25in;\">2)Deploy DSC Resources (module that implements DSC *-TargetResource cmdlets, MOF etc) to Program Files<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/7848.image006.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-20364\" src=\"https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/7848.image006.png\" alt=\"Image 7848 image006\" width=\"862\" height=\"434\" srcset=\"https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/7848.image006.png 862w, https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/7848.image006-300x151.png 300w, https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/7848.image006-768x387.png 768w\" sizes=\"(max-width: 862px) 100vw, 862px\" \/><\/a><\/p>\n<p class=\"MsoListParagraph\" style=\"text-indent: -.25in;\">3)Run the configuration to setup Pull and Compliance Server OData-IIS endpoints<\/p>\n<p>(Note: This sample generates a self-signed cert \u2013using makecert.exe for the HTTPS endpoint)<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/7450.image007.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-20365\" src=\"https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/7450.image007.png\" alt=\"Image 7450 image007\" width=\"776\" height=\"172\" srcset=\"https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/7450.image007.png 776w, https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/7450.image007-300x66.png 300w, https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/7450.image007-768x170.png 768w\" sizes=\"(max-width: 776px) 100vw, 776px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/8741.image008.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-20366\" src=\"https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/8741.image008.png\" alt=\"Image 8741 image008\" width=\"1474\" height=\"655\" srcset=\"https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/8741.image008.png 1474w, https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/8741.image008-300x133.png 300w, https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/8741.image008-1024x455.png 1024w, https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/8741.image008-768x341.png 768w\" sizes=\"(max-width: 1474px) 100vw, 1474px\" \/><\/a><\/p>\n<p class=\"MsoListParagraph\" style=\"text-indent: -.25in;\">4)Navigate to the Pull Server OData IIS endpoint<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/1348.image009.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-20367\" src=\"https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/1348.image009.png\" alt=\"Image 1348 image009\" width=\"697\" height=\"554\" srcset=\"https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/1348.image009.png 697w, https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/11\/1348.image009-300x238.png 300w\" sizes=\"(max-width: 697px) 100vw, 697px\" \/><\/a><\/p>\n<p class=\"MsoNormal\">That\u2019s it! Your Pull Server is ready for use.<\/p>\n<p class=\"MsoNormal\"><em><strong>Updated on 12\/27\/2013: Removing the older version of resource. For most recent version, go <a href=\"http:\/\/gallery.technet.microsoft.com\/xPSDesiredStateConfiguratio-417dc71d\">here<\/a><\/strong><\/em><\/p>\n<p class=\"MsoNormal\"><span style=\"color: #1f497d;\">\n<\/span>Thanks,\nRaghu Shantha [MSFT]<\/p>\n<p class=\"MsoNormal\"><em>PowerShell Team<\/em><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>UPDATE 2\/6\/2018 &#8211; The latest information regarding DSC Pull Service can be found in the DSC documentation using the link &#8211; https:\/\/docs.microsoft.com\/en-us\/powershell\/dsc\/pullserver &#8230;&#8230;&#8230;. DSC is a PowerShell extension that is part of Windows Server 2012 R2 and Windows 8.1. DSC enables deploying and managing configuration data for software services and managing the environment in which [&hellip;]<\/p>\n","protected":false},"author":600,"featured_media":13641,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[142,150,248,251,345,348],"class_list":["post-1961","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-powershell","tag-desired-state-configuration","tag-dsc","tag-powershell","tag-powershell-4-0","tag-windows-powershell-4-0","tag-windows-powershell-desired-state-configuration"],"acf":[],"blog_post_summary":"<p>UPDATE 2\/6\/2018 &#8211; The latest information regarding DSC Pull Service can be found in the DSC documentation using the link &#8211; https:\/\/docs.microsoft.com\/en-us\/powershell\/dsc\/pullserver &#8230;&#8230;&#8230;. DSC is a PowerShell extension that is part of Windows Server 2012 R2 and Windows 8.1. DSC enables deploying and managing configuration data for software services and managing the environment in which [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts\/1961","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/users\/600"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/comments?post=1961"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts\/1961\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/media\/13641"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/media?parent=1961"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/categories?post=1961"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/tags?post=1961"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}