Jump to content


BzowK

Creating Dynamic "Install Applications" (MDT UDI) Page

Recommended Posts

Hey Guys / Niall -

I've been assigned a new project and before digging in too much, wanted to post to hopefully get some help from the pros. :)

For past OSD TSs, I've used UDI Wizard Designer (in MDT) to create a frontends for OSD task sequences. We currently have a great proprietary frontend created with AutoIT (using SCCM SDK), but are looking to add functionality to it for Replace scenarios. After presenting a few options for adding additional software other tan what's in the TS, they want to add just the "Install Applications" page from the UDI Wizard.

Easy enough... but... they want added functionality for Replace scenarios...

When running OSD on the new system and the Install Applications page appears (which is in WinPE), they want the list of applications to already be checked for install - based on what was installed on the old system. Basically, if they had Acrobat installed on the old system (which is not currently in our OSD TS), when the list appears (which shows the same app list each time) they want Acrobat checked.

The Plan

Fortunately, we already have the installed app data for the current frontend already. This frontend (created with AutoIt) is also already capable of loading system-specific files / registry keys into WinPE before this UDI page would even run. Therefore, I'm asking for advise on one challenge:

What I Need Help With

The "Application Install" page is basically a simple XML file. What I'm trying to find are files or registry keys what I may have the frontend add to WinPE which would "check" the boxes of certain lists of applications in the page for each system / boot.

Currently, Applications added to the Install Applications page will check the local computer to see if listed applications are installed and check them off if so - but -this will not be running from the old computer - and - be in WinPE. It has 2 methods of checking: Display Name & Product ID - or - WMI / MSI. Below is the code from each showing how they try to identify if an app named is installed locally:

The XML Code

(The full XML file including bot clips below is attached)

Looking for Shoretel Communicator (via Display Name & Product ID)

<Application DisplayName="ShoreTel Communicator" State="enabled" Id="5" Name="ShoreTel Communicator" Guid="ScopeId_E8E18C50-ACD5-4127-BF40-B46A3FB9BE60/Application_35806017-5c47-4702-8156-c19b6bda9592">
        <Setter Property="description" />
        <Dependencies />
        <Filters />
        <ApplicationMappings>
          <Match Type="WMI" OperatorCondition="OR" DisplayName="ShoreTel Communicator">
            <Setter Property="Name">ShoreTel Communicator</Setter>
          </Match>
          <Match Type="MSI" OperatorCondition="OR" DisplayName="ShoreTel Communicator">
            <Setter Property="ProductId">{CFBE727A-56A0-40D3-8D4B-FCC5D4864F13}</Setter>
          </Match>
        </ApplicationMappings>
      </Application>

Looking for vWorkspace Connetor via WMI / MSI (Via Selected ConfigMgr App)

<Application DisplayName="vWorkspace Connector for Windows" State="enabled" Id="6" Name="vWorkspace Connector for Windows" Guid="ScopeId_E8E18C50-ACD5-4127-BF40-B46A3FB9BE60/Application_fa2d7abd-8b6a-464b-bb3d-47e19d3a1ae3">
        <Setter Property="description" />
        <Dependencies>
          <Dependency Type="exclude" Application.Id="5" />
        </Dependencies>
        <Filters />
        <ApplicationMappings>
          <Match Type="WMI" OperatorCondition="OR" DisplayName="vWorkspace Connector for Windows">
            <Setter Property="Name">vWorkspace Connector for Windows</Setter>
          </Match>
          <Match Type="MSI" OperatorCondition="OR" DisplayName="vWorkspace Connector for Windows">
            <Setter Property="ProductId">{AAC5E85D-AB82-48B0-A381-BAA85BEC0B45}</Setter>
          </Match>
          <Match Type="MSI" OperatorCondition="OR" DisplayName="vWorkspace Connector for Windows">
            <Setter Property="ProductId">{AAC5E85D-AB82-48B0-A381-BAA85BEC0B45}</Setter>
          </Match>
          <Match Type="MSI" OperatorCondition="OR" DisplayName="vWorkspace Connector for Windows">
            <Setter Property="ProductId">{AAC5E85D-AB82-48B0-A381-BAA85BEC0B45}</Setter>
          </Match>
          <Match Type="MSI" OperatorCondition="OR" DisplayName="vWorkspace Connector for Windows">
            <Setter Property="ProductId">{AAC5E85D-AB82-48B0-A381-BAA85BEC0B45}</Setter>
          </Match>
        </ApplicationMappings>
      </Application>

 

I hope that the above made sense. I know it's a lengthy post, but just wanting suggestions or ideas if anyone has any.

 

Thanks for your help and time! - I really appreciate it!

Template2.xml.app.txt

Share this post


Link to post
Share on other sites

Hi,

You could always utilize the MDT DB and in there create add all applications to your comnputers, then the information is in the MDT database and then the applicaitons will be installed during a replce scenario as well. This works really great you can create roles as well, like HR and the add all applications to the HR role..

I have designed many solutions where we use this.

Regards,

Jörgen

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...


×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.