Jump to content


Query used and unused PCI/PCIe etc slots

Recommended Posts



we've a large number of devices with a few PCI and PCIe devices installed, not in the same slots. would like to push out a configuration script, the settings of which, for long-winded reasons or prerequisites, depends on how many, and which, slots are in use. the solution to this would therefore be query based collections and separate packages containing the variables and then deployment en masse allowing configuration to be tailored to the hardware. -hopefully avoiding the months of work which would be a manual visual audit and inspection and then collation into collections.


NOTE: it's actually irrelevant what the devices are, more whether there is, or isn't a device present in a slot, or which combination of slots are in use



the problem with this plan is i can't actually find anything on which to base my query in SCCM 2012 itself, i can query an individual machine with powershell and return the slots in use. so i know the WMI classes and attributes exist but cannot find how to include these in a collection query, nor any way to report this in general. modifying and importing an updated sms_def.mof would be great but i'm unsure of what to add to this file to include the correct attributes.


does anyone have any insight or experience of this, or any where they can point me in the right direction to get the correct details collected by the client and then to process this into a valid collection.



thanks for your help



Share this post

Link to post
Share on other sites

You have the right idea, import the WMI classes into CM12, then you can report on them, deploy scripts based on the results, etc.


These two blogs will point you in the right direction. It will be hard for anyone to give you much more than this as you haven’t given any details for anyone to work with.



  • Like 1

Share this post

Link to post
Share on other sites

Hi Garth



that's fantastic. the ability to use the method mentioned in your second link (adding class... from a remote pc) was the feature i wasn't aware of and was the missing link for me, i think.


for information the class i wanted to use, and have now added in it's entirety to my hardware inventory, was the "Win32_systemSlot" as described here: http://msdn.microsoft.com/en-us/library/aa394486(v=vs.85).aspx sepcifically the "CurrentUsage" value per slot can answer the question for me exactly.


thanks to your help i've now added this class, i'm going to let the system sit for a while, inventory a few machines and then, when there's some information held i can look into what query to put into my collections to define the combinations of slots.


Thanks for your help with this.

Share this post

Link to post
Share on other sites

well basically i'm attempting to push out a bios customization script shutting off all currently unused PCI/PCIe slots in the BIOS. a script can be customized to allow the correct ports but, as devices have different slots currently in use this has been difficult to centrally control without a manual visit to a machine, which would be expensive, in terms of time and effort.


thanks to the above i now have the correct information being inventoried, which i'm allowing to gather on schedule, but it's trickling in enough that i can see positive progress so i can afford to be patient on gathering the whole picture with time.


my next task is to create collections that will populate based on the slots in use eg:


slot 0 in use and slot 3


slot 1 and slot 4

etc etc


so that the correct script can be deployed to the correct collection. so far this has been a bit fiddly and i need to spend a little more time on it to get it working, i can currently group a collection per utilization of a specific slot, but not worked out the logic for the combinations of slots. hopefully it won't be too hard to crack.

Share this post

Link to post
Share on other sites

Personally wouldn't create the collection for each slot. I would put it the logic within the script and do it that way. IMO, it will be a lot less effort to query WMI within VBS and preform the logic there.

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.

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.


  • Create New...