PDQ.com mobilePDQ.com desktop

Writing Your First PowerShell Script

Kris Powell

"I love spending twice as long and working twice as hard to get half as much done!" - Nobody ever.

System administrators love shortcuts and time savers. I think this goes twofold for the aggravation that comes with managing computers.

Enter PowerShell!

Though there are many great scripting languages out there, we're going to spend our time with PowerShell. If you're using a recent version of Microsoft Windows, you've probably already got a version of it installed.

How do I create a PowerShell script?

PowerShell saves scripts in the .ps1 format. I have created both a file and a folder for our demonstration

C:\Scripts\My First Script.ps1

but please feel free to use your own custom folder and filenames.

Edit your file and add the following line:

Write-Host "Hello, World!"
Write-Host "Hello, World" PowerShell script

Save the file and return to the PowerShell window. In order to run the script, the most common method is by calling it:

& "C:\Scripts\My First Script.ps1"

Go ahead and try that command. You should get an error that says scripts have been disabled on your system.

"My First Script.ps1"

This is normal behavior. In order to prevent malicious scripts from running on your system, PowerShell enforces an execution policy. There are 4 execution policies you can use:

  • Restricted – Scripts won’t run. Period. (Default setting)

  • RemoteSigned – Locally-created scripts will run. Scripts that were created on another machine will not run unless they are signed by a trusted publisher.

  • AllSigned – Scripts will only run if signed by a trusted publisher (including locally-created scripts).

  • Unrestricted – All scripts will run regardless of who created them and whether or not they are signed.

In order to use our newly-created script, we will have to modify our execution policy to allow our script to run. Since we have not digitally signed our new script, our options for setting the execution policy are left to “RemoteSigned” and “Unrestricted.” We are going to change it to RemoteSigned.

In order to change the execution policy, we will need to reopen PowerShell as an Administrator (the command will fail otherwise) and run the following command:

Set-ExecutionPolicy RemoteSigned

The Set-ExecutionPolicy command will ask to verify that you really want to change the execution policy. Go ahead and select Y for yes, then go ahead and close and reopen your Powershell window.

After restarting the Powershell window, go ahead and try running that script again

& "C:\Scripts\My First Script.ps1"

It should write back, "Hello, World!" to the window:

Running your first powershell script

Congratulations! You just wrote your first PowerShell script!

As this blog series continues, we'll continue to add more helpful tips on how to use PowerShell. In the meantime, you know have the amazing power to create and run your own scripts.

We invite you to check out our list of PowerShell Commands to get familiar with how PowerShell operates.

Did you know that PDQ Deploy has a PowerShell step you can use to deploy your scripts?

This blog post is part of a series on Powershell:

Don't miss the next post!

How PowerShell can calculate your retirement

How PowerShell can track 401K growth

In this blog, I use PowerShell to focus and build a 401k calculator because its tax advantages make it ideal to build your retirement nest egg.