A new Flexera Community experience is coming on November 25th. Click here for more information.
Does anyone know what the benefits of using Software over General Catalog Items is for software items?
‎Jun 03, 2020 10:51 AM
First to clarify, Charlie's message should have read...
@CharlesW wrote:
Software catalog items must target a device that is managed byConfig Mgra 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.
‎Jun 03, 2020 12:35 PM
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).
‎Dec 07, 2020 03:10 PM - edited ‎Jan 15, 2021 07:32 PM
‎Jun 03, 2020 11:31 AM
First to clarify, Charlie's message should have read...
@CharlesW wrote:
Software catalog items must target a device that is managed byConfig Mgra 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.
‎Jun 03, 2020 12:35 PM
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?
‎Jun 03, 2020 01:16 PM
@sara_b That is one way our customer is using the General CIs. They are always processing hardware requests via General CIs as well.
‎Jun 03, 2020 01:18 PM
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?
‎Dec 01, 2020 02:25 PM
‎Dec 07, 2020 01:57 PM
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).
‎Dec 07, 2020 03:10 PM - edited ‎Jan 15, 2021 07:32 PM
@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.
‎Jan 16, 2021 09:28 AM
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.
‎Jan 16, 2021 09:51 AM
@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?
‎Feb 04, 2021 09:44 AM
@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.
‎Sep 25, 2023 04:10 PM