cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Benefits of General vs Software Catalog Items

dbeckner
By Level 10 Champion
Level 10 Champion

Does anyone know what the benefits of using Software over General Catalog Items is for software items?

(2) Solutions

First to clarify, Charlie's message should have read...


@CharlesW wrote:
Software catalog items must target a device that is managed by Config Mgr a supported deployment system (i.e. it has the client installed).

Second, you could technically use general catalog items to deliver software through ConfigMgr or other deployment systems (even ones not supported by App Broker) by adding the user or device (requires some special configuration, since general catalog items don't target a device by default) into a pre-created group/collection with a pre-created deployment in your deployment system (either directly via API or indirectly through AD group linking).  However, this only gives you install capability.  You would not be able to perform an uninstall using a general catalog item (unless you create separate install and uninstall general catalog items).  Even if you do create a separate uninstall general catalog item, you wouldn't be able to perform automated reclamation with general catalog items because they don't fire the Install or Uninstall events (those are only used by software catalog items).

I believe I have another post somewhere in this forum about "limitations" of using general catalog items, but I can't find it at the moment.

Anything expressed here is my own view and not necessarily that of my employer, Flexera. If my reply answers a question you have raised, please click "ACCEPT AS SOLUTION".

View solution in original post

If your users are not associated with a device, you can still do a request on behalf by searching for the desired computer (which may or may not show another user as being associated).  After you select that device and add it to the list at the bottom of the page, you can click the user icon on that item and search for the desired user to associate with the request (even if they have no relationship to the selected device).

Edit: I just remembered we made a change several releases back to no longer require device selection during checkout for general catalog items.  As such, you may not be able to search by computer name when doing Request on Behalf unless you revert to the old behavior that requires selection of a device during checkout for general catalog items.  There is an undocumented setting for this in the database, so if you wish to return to that old behavior, you can open a support case for assistance.

On a related side note, it is best practice to create a user device affinity record in SCCM when imaging a machine, so you don't have to wait several days for calculated usage to automatically create it.  This can be done as a step in the task sequence if using SCCM task sequences to image your PCs.  If you don't know who the device is being assigned to when imaging it, you can always go into the SCCM console later and create the user device affinity record when you are ready to give the device to a user.  If you don't want support techs to have access to the SCCM console, you could create a general catalog item that can create the user device affinity record using our web service API's (or a PowerShell script calling directly into the SCCM provider).

Anything expressed here is my own view and not necessarily that of my employer, Flexera. If my reply answers a question you have raised, please click "ACCEPT AS SOLUTION".

View solution in original post

(12) Replies
CharlesW
By Level 12 Flexeran
Level 12 Flexeran
If you wish to deploy an Application/Package through ConfigMgr, JAMF, Altiris, etc, then you need to use a software catalog item.. A general catalog item is typically used to invoke web service commands, scripts, etc to perform some task, but it is really not directly tied to a Config Mgr application or package. Software catalog items must target a device that is managed by Config Mgr (i.e. it has the client installed).. General catalog items target a user (by default), and have no such requirement.

First to clarify, Charlie's message should have read...


@CharlesW wrote:
Software catalog items must target a device that is managed by Config Mgr a supported deployment system (i.e. it has the client installed).

Second, you could technically use general catalog items to deliver software through ConfigMgr or other deployment systems (even ones not supported by App Broker) by adding the user or device (requires some special configuration, since general catalog items don't target a device by default) into a pre-created group/collection with a pre-created deployment in your deployment system (either directly via API or indirectly through AD group linking).  However, this only gives you install capability.  You would not be able to perform an uninstall using a general catalog item (unless you create separate install and uninstall general catalog items).  Even if you do create a separate uninstall general catalog item, you wouldn't be able to perform automated reclamation with general catalog items because they don't fire the Install or Uninstall events (those are only used by software catalog items).

I believe I have another post somewhere in this forum about "limitations" of using general catalog items, but I can't find it at the moment.

Anything expressed here is my own view and not necessarily that of my employer, Flexera. If my reply answers a question you have raised, please click "ACCEPT AS SOLUTION".

@jdempsey @CharlesW Thank you both for the response. This is exactly what I was looking for.

Using the General Catalog item, by extension, would be useful for someone deploying in a virtual environment then? Adding a user to an existing AD group that would allow them access to (insert title here) software? 

@sara_b That is one way our customer is using the General CIs. They are always processing hardware requests via General CIs as well.

I have a scenario that I believe is related to the differences between General and Software CIs. Some users are not showing up when attempting to perform a "Request on behalf" for a Software CI. When i check support tools they are not mapped to any computers, but they do show under a search for all users. When I checked FNMS they do not show as a calculated user on any devices. Is it a correct assumption that for a request on behalf to work for a software CI a user must be mapped to a computer based on the SCCM user and computer import?

Request on Behalf of searches vUserComputerMap, so yes, either the user or computer (depending upon what you are searching for) must be found in vUserComputerMap.. Neither WD_User or WD_computer are searched.... In 2019R1 and beyond, there will be a "relationship" for all devices in WD_Computer, even if the relationship has NULL for the user..

If your users are not associated with a device, you can still do a request on behalf by searching for the desired computer (which may or may not show another user as being associated).  After you select that device and add it to the list at the bottom of the page, you can click the user icon on that item and search for the desired user to associate with the request (even if they have no relationship to the selected device).

Edit: I just remembered we made a change several releases back to no longer require device selection during checkout for general catalog items.  As such, you may not be able to search by computer name when doing Request on Behalf unless you revert to the old behavior that requires selection of a device during checkout for general catalog items.  There is an undocumented setting for this in the database, so if you wish to return to that old behavior, you can open a support case for assistance.

On a related side note, it is best practice to create a user device affinity record in SCCM when imaging a machine, so you don't have to wait several days for calculated usage to automatically create it.  This can be done as a step in the task sequence if using SCCM task sequences to image your PCs.  If you don't know who the device is being assigned to when imaging it, you can always go into the SCCM console later and create the user device affinity record when you are ready to give the device to a user.  If you don't want support techs to have access to the SCCM console, you could create a general catalog item that can create the user device affinity record using our web service API's (or a PowerShell script calling directly into the SCCM provider).

Anything expressed here is my own view and not necessarily that of my employer, Flexera. If my reply answers a question you have raised, please click "ACCEPT AS SOLUTION".

@jdempsey Thanks for the edit. This is really helpful actually as we are seeing delays when a new employee onboards in how quickly their device gets mapped to them. This general catalog item to set user affinity might be a good solution. 

What I do is to set up a couple web services under Site Management > Commands and Actions > Web Service Commands.

The first one points to the ESD Web Service on the SCCM server (http://<sccmsiteserver>/esdwebservice/esdwebservice.asmx) and uses the AssignPrimaryUserToMachine method.  Pass either ##MachineName## or ##QuestionID:xxxx## (depending on whether you're using a question to get the computer name or if you've reverted Request On Behalf for General Catalog Items to the old behavior and are getting the ##MachineName## variable from the RoB lookup) and ##UniqueUserName## for the second parameter.

The second web service points to the App Portal Integration API (http://localhost/esd/ws/integration.asmx) and uses the SyncSingleUserComputer method.  Pass in the variables ##UserName##, ##UserDomain##, and either ##MachineName## or ##QuestionID:xxxx## (depending on whether you're using a question to get the computer name or if you've reverted Request On Behalf for General Catalog Items to the old behavior and are getting the ##MachineName## variable from the RoB lookup).

Once your web services are configured, create a general catalog item, and on the Actions tab, add AssignPrimaryUserToMachine and SyncSingleUserComputer under the On Submit event.

Anything expressed here is my own view and not necessarily that of my employer, Flexera. If my reply answers a question you have raised, please click "ACCEPT AS SOLUTION".

@jdempsey Thanks for the detailed response and explanation. I am looking at implementing this with my customer. I'm wondering what the drawbacks are  (if any) on this solution. Since the question fields are free text, what would happen if an admin fat-fingers the computer name? If the computer is not found what kind of feedback would we get that the mapping failed? Also what kind of feedback could we get that the mapping was created?

@dbeckner Sorry, never saw this additional question at the end until just now when I was reading back through the thread for a recent request.  If you are familiar with creating SOAP web services, you could create a web service that returns a list of known computers and use that web service for the answers to the question.  However, if you have a lot of computers, selecting one from a long list is not a very pleasant user experience.  Either way, you should see the results of the web service calls in the request log, so if there is a failure trying to associate the user to the device, I believe you'd see the error in that request log.

Anything expressed here is my own view and not necessarily that of my employer, Flexera. If my reply answers a question you have raised, please click "ACCEPT AS SOLUTION".