Running SCCM PowerShell Scripts as a Service Account

As you may probably know, Microsoft System Center Configuration Manager includes a PowerShell module that allows us to automate our day-to-day sysadmin tasks. This module is very helpful for repetitive tasks. But if you try to schedule a PowerShell script to run as run as a Service Account, you will get an error.

cd : Cannot find drive. A drive with the name ‘CM1’ does not exist.
At line:1 char:1
+ cd CM1:
+ ~~~~~~~
+ CategoryInfo : ObjectNotFound: (CM1:String) [Set-Location], DriveNotFoundException
+ FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.SetLocationCommand

First, I created the following Active Directory account: “GET-CMD\Svc_CM_Script” that will run my SCCM PowerShell Scripts. So, I run as the PowerShell console with this user.

Next, I will import the SCCM module:

PS > Import-Module "C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\ConfigurationManager.psd1"

Ok, the module is imported with no error. Now, I want to go to the newly created Configuration Manager drive but it doesn’t work! Let’s examine:

  1. The console is running as my service account.
  2. The get-module cmdlet shows me the SCCM module, so the module is imported.
  3. But the PSDrive is not accessible

Let’s compare with my user account. I open the PowerShell console, and run the same commands:

Well, it works.

What does it mean?

The Configuration Manager PowerShell module is digitally signed, and the service account running the PowerShell commands must install the certificate that the module was signed with because I never open the SCCM console with this service account.

How to fix this issue?

You can install the certificate to solve this problem:

  • Right click the PowerShell Module called “ConfigurationManager.psd1”
  • Select “Properties” and “Digital Signatures

 

Finally, select “View Certificate” and “Install Certificate...” into the Trusted Publishers Store.

Once the certificate is installed, you can now run your SCCM PowerShell commands!

 

Thanks for reading! You can follow me on Twitter @PrigentNico

About Nicolas 282 Articles
I work as an IT Production Manager, based in Paris (France) with a primary focus on Microsoft technologies. I have 10 years experience in administering Windows Servers. . I am a Microsoft MVP for Cloud & Datacenter Management. I also received the PowerShell Hero 2016 award by PowerShell.0rg. And finally, I am "MCSE: Cloud Platform and Infrastructure", "MCSA: Windows Servers", "Administering & Deploying SCCM", and CheckPoint CCSA certified.