88

I am implementing a script in powershell and getting the below error. The sceen shot is there exactly what I entered and the resulting error.

enter image description here

At this path there is file Get-NetworkStatistics.ps1 which I got from Technet Gallery. I am following the steps from it, though there are errors.

2

4 Answers 4

89

You first have to 'dot' source the script, so for you :

. .\Get-NetworkStatistics.ps1

The first 'dot' asks PowerShell to load the script file into your PowerShell environment, not to start it. You should also use set-ExecutionPolicy Unrestricted or set-ExecutionPolicy AllSigned see(the Execution Policy instructions).

Sign up to request clarification or add additional context in comments.

Comments

3

For the benefit of searchers, there is another way you can produce this error message - by missing the $ off the script block name when calling it.

e.g. I had a script block like so:

$qa = {
    param($question, $answer)
    Write-Host "Question = $question, Answer = $answer"
}

I tried calling it using:

&qa -question "Do you like powershell?" -answer "Yes!"

But that errored. The correct way was:

&$qa -question "Do you like powershell?" -answer "Yes!"

Comments

0

Yet another way this error message can occur.

If PowerShell is open in a directory other than the target file, e.g.:

If someScript.ps1 is located here: C:\SlowLearner\some_missing_path\someScript.ps1, then C:\SlowLearner>. ./someScript.ps1 wont work.

In that case, navigate to the path: cd some_missing_path then this would work:

C:\SlowLearner\some_missing_path>. ./someScript.ps1

2 Comments

Well, yes, because in a path, . means "the current directory". If you are not trying to use something in the current directory, then . would be an invalid path. You don't need to switch directories so that . works, just specify an actual valid path: . C:\SlowLearner\some_missing_path\someScript.ps1
@AndrewF - indeed. The intent was merely to shine a light on how such an error might be produced.
-1
  1. Be sure that the script Format is correct. Powershell scripts name have to end with .ps1.

  2. If it cannot be executed, Set LocalMachine scope Execution Policy to Unrestricted by

Set-ExecutionPolicy Unrestricted -Scope LocalMachine

To see execution policies, run ExecutionPolicy -List.

  1. To execute the powershell script, you have to put a dot and a back slash (.\) before the script name (ex. .\script.ps1).

Above 3 steps, definitely will solved the script execution problems.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.