Powershell and SCCM Packages

Due to some down sizing in our company, I have now been tasked with re-creating a Package Downloader Tool. They have yet to provide me with the original source code (I think it was done with VBA, or maybe C).

Regardless, I have been working on my Powershell skills, and thought that maybe I could move this tool to powershell.

A bit of background. I have no experience with SCCM or Nomad (sucks to be me…). So I am starting pretty much from scratch until they can find the old source code (which would give some hints as to where I should be going).

I was hoping for a bit of assistance if possible. I know the name of the main SCCM server. I know the name of our local Nomad server. I know the location of all the packages. What I want to be able to do at the start is ask the nomad/SCCM server what packages are available. This also needs to be done from a local machine, not one of said servers (or invoking the command?).

The previous tool required one of the IT admin accounts to be able to list/run the packages, and I would assume that the same would be needed here. Most stuff I have found to do with this require the Microsoft Configuration Manager console, which is not on the average user machine, so hoping to not need that. If that is the case, I guess I’m lost.

Any assistance would be greatly appreciated, even if it’s to tell me it cannot be done.

What version of SCCM are you running?

I am not familiar with Nomad, but with SCCM (depending on the version of SCCM -> 2007/2012/Current Branch, per Will’s question) there are PowerShell modules that allow you to query the system with a single cmdlet/function and return the information you are looking for.

I’m not familiar with Nomad or SCCM, but here is what Matt is talking about. I found the following for SCCM 2012. Haven’t found anything for other versions.

https://technet.microsoft.com/en-us/library/dn958404(v=sc.20).aspx
https://www.microsoft.com/en-us/download/details.aspx?id=46681

Pretty sure it’s 2012. The key is that this needs to be runnable from any user workstation. We have package deployment, but sometimes there are issues requiring quick turn around for the software install. Other times it’s to install tools that are not normally advertised, but the packages are created. Working from the main SCCM server is a start that I am ok with.

For these cmdlets, are specific modules required? The bulk of our fleet is now on win10, with a few straggling Win7 machines, incase that matters.

If you’re not able to install the SSCM library/module on your local machine, you can import the commands from a module on a remote machine onto your local machine by doing the following:

$Session = New-PSSession Server
Import-PSSession $Session -Module ModuleNameHere

You can even add the -Prefix parameter to the Import-PSSession cmdlet to make sure all of the commands from that module have that prefix at the beginning (Ex: Get-SCCMNoun instead of just Get-Noun).

I found the following SCCM cmdlets that might be what you’re looking for to locate the packages.

Get-CMDeploymentPackage
Get-CMDriverPackage
Get-CMPackage

Thanks Kevyn, the import command was what I was looking for. It seems that the Configuration Manager Library seems to be a requirement, and that requires the SCCM admin console.

A step in the right direction. Will let you know how it goes once I have the module installed on the SCCM server and have had a chance to try it out.

Not a problem. Good luck. :slight_smile: