Freigeben über


Enable Programs and Applications to be installed from a Task Sequence without being Deployed!

Updated Post: https://blogs.technet.com/b/brandonlinton/archive/2014/02/18/enable-referenced-programs-and-applications-to-be-installed-from-a-task-sequence-without-being-deployed.aspx

So this has been a common question as far back as Configuration Manager 2007 when a script was incorporated into the Microsoft Deployment Toolkit called EnableProgramForTS.vbs which would enable each program to be installed without being deployed in a Task Sequence.  Well with Configuration Manager 2012 we now have Applications as well as programs but even better we have a wealth of built-in cmdlets that can be utilized to take some of this cumbersome scripting and make it incredibly easy…

I recently had some free time and decided to check out the cmdlets in System Center Configuration Manager 2012 R2 and found that we can easily set this option on both Programs and Applications really easily.

If you are not familiar here are screenshots of what both locations look like:

Application

image

Program

image

Below is the code snippet that should be ran from your ConfigMgr Site server that will automatically find the ConfigMgr Powershell Module import and change the Powershell drive to the Site Code of your site.  It will then attempt to enable these options on both Programs and Applications.

NOTE: Only tested on Configuration Manager 2012 R2 Mileage may vary on other versions.

 import-module ($Env:SMS_ADMIN_UI_PATH.Substring(0,$Env:SMS_ADMIN_UI_PATH.Length-5) + '\ConfigurationManager.psd1')
 $PSD = Get-PSDrive -PSProvider CMSite
 CD "$($PSD):"
 Get-CMProgram | Foreach-Object {Set-CMProgram -StandardProgramName $_.ProgramName -Id $_.PackageID -EnableTaskSequence $true}
 Get-CMApplication | Foreach-Object {Set-CMApplication -Id $_.CI_ID -AutoInstall $true}

.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; }

Disclaimer: The information on this site is provided "AS IS" with no warranties, confers no rights, and is not supported by the authors or Microsoft Corporation. Use of included script samples are subject to the terms specified
in the
Terms of Use .

Comments

  • Anonymous
    January 01, 2003
    Just a quick word of warning from the product engineering team: we don't recommend setting this attribute on applications that are not referenced by a task sequence as it will generate extraneous policy traffic. Which is why this is not enabled by default. So use carefully, and test fully in your environment. But this is a great way to set the attribute on a large number of applications, for example, if you created the applications, and then the task sequence, but forgot to enable this on your apps first. Thanks for sharing the script!
    • Anonymous
      May 18, 2017
      To Aaron's comment. Since we utilize the dynamic application install step. . we need to set this across the board because this not only applies to the task sequence applications that are referenced directly, but the step to install dynamic applications. If it is not set those steps will fail if you referenced an application that this setting is not set for.
    • Anonymous
      October 18, 2017
      Good to know thanks Aaron!
  • Anonymous
    February 18, 2014
    In my previous blog post i wrote about how to Enable Programs and Applications to be installed from a