PowerShell Cmdlets without console
Currently you have to install the ConfigMgr console in order to use the powershell cmdlets. It would be much easier to manage these cmdlets if the dependency on the console was removed. After all you might want to install this on a server which is designed to manage code which runs server core.
The Cmdlet Library is tightly coupled with the administrator console and the engineering investment to decouple them doesn’t make sense at this time nor is this something we are likely to ever do.
The console was developed before the cmdlets (unlike products like Exchange, VMM, and MDT which have PowerShell underpinning the console) which means to truly “fix” this we would need to literally flip the entire console design from being PowerShell built on top of the console to the console being built on top of PowerShell. It’s pretty obvious that this would be a massive undertaking and we simply don’t have the engineering resources to do this. If at such time we decided to re-architect the console we would definitely ensure PowerShell is a first class citizen in the design.
As a workaround today, you can use PowerShell remoting to connect to a machine that has the administrator console installed and run cmdlets that way. We can also investigate improvements in a future release to allow for an “xcopy” like experience so that you can copy the admin console bits from another machine and run the cmdlets without requiring an actual MSI-style installation.
Lars Panzerbjrn commented
Not having a separate module available via the PowerShell gallery is practically disqualifying SCCM from being worth using.
Maxime Bilodeau-Boivin commented
most Commands in the module are WMI based, so we just need someone to do a Module that is independant and wmi based a 100%
Right now the Powershell module must run locally. In some case that would be nice to be able to do Invoke-command, PSRemoting to SCCM server on Admin server to administer SCCM from a computer without SCCM Management tools installed.
David Kenney commented
May be you can leverage the work that the Exchange team did for Exchange Admin from technician desktops by connecting to the server and importing the commands to the session. All my Exchange scripts start off with these two lines:
$exch =New-PSSession -ConfigurationName Microsoft.Exchange -ConnectorUri http://<mailserver>/powershell
Import-PSSession $exch -Verbose
AdminAdam Meltzer (ConfigMgr Product Team) (Software Engineer, Microsoft Endpoint Configuration Manager) commented
Can you either file a separate User Voice item or Connect bug requesting this functionality?
Sean Kearney commented
See if they like this. I wrote a script to extend the Cmdlets so that they are Discoverable using Import-Module or Get-Module -listavailable - The only reason it DOESN'T work is the folder name is called "Bin" and the ModuleName is called "ConfigurationManager" (That and the folder path is not discoverable under the System Variable PSModulePath)
I propose they take what this Script is doing and just add that to Configuration Manager. It's simple, doesn't break the DLL's or Remove anything and provides that functionality instantaneously.
Honorary Scripting Guy
Al Raymond commented
Maybe getting the ConfigurationManager module on PowerShell gallery could help relieve some of these problems. Or it might be the module has to be modified before it can makes sense to provide it via the gallery.