0/1 Lessons

Course Introduction

• 5min

0 / 2 lessons complete

Getting Started with Windows PowerShell

• 42min

0 / 7 lessons complete

Getting Help and Finding Commands

• 39min

0 / 6 lessons complete

PowerShell Command Syntax

• 33min

0 / 5 lessons complete

PowerShell Objects and Properties

• 35min

0 / 6 lessons complete

The PowerShell Pipeline

• 24min

0 / 2 lessons complete

PowerShell Providers

• 30min

0 / 5 lessons complete

PowerShell Arrays and Variables

• 28min

0 / 4 lessons complete

PowerShell Loops

• 19min

0 / 3 lessons complete

PowerShell Conditional Statements

• 11min

0 / 1 lessons complete

On Premises Lab Setup

• 36min

0 / 8 lessons complete

Basic Domain Administration with Windows PowerShell

• 2hr 27min

0 / 10 lessons complete

Send Emails with PowerShell

• 22min

0 / 2 lessons complete

PowerShell Desired State Configuration (DSC) Basics

• 1hr 48min

0 / 6 lessons complete

Course Conclusion

• 1min

0 / 1 lessons complete

For Loops

Saving Progress...

In this lecture, we are going to discuss PowerShell For Loops.

The first thing I am going to do is open the PowerShell ISE as an Administrator.

Let’s just define what a PowerShell Loop is. A For Loop allows you to repeat a section of code a specific number of times.

So, you are going to pass a command inside of this For Loop and is going to be repeated a specified number of times like 25 or you can specify 1,000 times or more if you wanted to.

So, the basic format or a For Loop is the following:

for () {


Inside of the Brackets we have the command we want to repeat.

Now, we need to specify the 3 elements that define this For Loop.

  1. Define the variable we want to use to count and its value
  2. What kind of condition we will use when we're counting
  3. Either increase or decrease the variable

If we write these in PowerShell syntax is going to look like this.

for ($i=0;$i -lt 5; $i++) {

echo “Im in a loop”


And If I execute the code in PowerShell ISE it is going to look like the following:

I get the “Im in a loop” five times.

Now, I can utilize the variable $i inside of the loop. Type the following and execute:

for ($i=0;$i -lt 5; $i++) {

echo “Im in a loop: $i”


As you can see, we have the index output that is used as its counting. It starts at 0 and is counting all the way to 4 because 4 is the last number that is less than 5, the last integer number. So we actually get 5 elements but because we are counting from 0 we only count up to 4 for a total of 5 individual elements.

Sometimes counting from 0 can be a little bit confusing. If you want you can change it to start at 1 and end in 6 for 5 elements.

for ($i=1;$i -lt 6; $i++) {

echo “Im in a loop: $i”


But keep in mind that when we are iterating over arrays like we are about to do, arrays start counting with an index of 0. So, generally, counting from 0 is a better practice. So, I just revert that to 0.

Now, let’s go ahead and iterate over an array. Let’s define an array.

$MyArray = @(“Cars”,”Trucks”,”Motorcycles”,”SUVs”)

for ($i=0;$i -lt 4; $i++) {

echo “Element $i value $MyArray[$i]”


But if we run this script you’ll see is not what we are looking for 

So what we need to do is the following:

$MyArray = @(“Cars”,”Trucks”,”Motorcycles”,”SUVs”)

for ($i=0;$i -lt 4; $i++) {

echo (“Element $i value: ” + $MyArray[$i])


Let’s execute this code by hitting F5.

Now we get the elements with their value.

This is one example of how you can use PowerShell arrays with For Loops. This is one of the things I do most of the time. I’ll get an array of users and I’ll iterate over these users and I’ll do some certain commands like create a new user account with this basic information or different things like that.

Now, let’s talk about if we run it wrong with one more value.

$MyArray = @(“Cars”,”Trucks”,”Motorcycles”,”SUVs”)

for ($i=0;$i -lt 5; $i++) {

echo (“Element $i value: ” + $MyArray[$i])


As you can see we have an empty element and then we start running into errors or what about if I counted up to 2

Then we don’t count the entire array. Well, there’s a way to get around that and that is simple to use the following:

$MyArray = @(“Cars”,”Trucks”,”Motorcycles”,”SUVs”)

for ($i=0;$i -lt $MyArray.Count; $i++) {

Server Academy Members Only

Want to access this lesson? Just sign up for a free Server Academy account and you'll be on your way. Already have an account? Click the Sign Up Free button to get started..

0 0 votes
Lesson Rating
Notify of
Inline Feedbacks
View all comments