Microsoft PowerShell

From DataSelf Knowledge Base
Jump to navigation Jump to search

Microsoft's recommended scripting language. Although designed with Windows administration particularly in mind, PowerShell also can function as general scripting language. Unfortunately, the scripting language aspect of Powershell seems to receive less attention from the vendor.

DataSelf's Microsoft PowerShell Knowledge Base

Powershell Scripts

  • PS Run Excel AD     AD for Excel - DataSelf's other Automatic Distribution system


PowerShell Language

Powershell language reference and concepts.

Understanding Powershell Modules

Get-Command -Module


Determining the Version of Powershell

If the $PSVersionTable variable doesn't exist, then you are running V1. If it does exist, then the version info will be available from $PSVersionTable.

  1. Run Windows Powershell
    (Start > type "Powershell" into search box)
  2. Type '$PSVersionTable' at prompt. (not case sensitive)
  • If the $PSVersionTable variable doesn't exist, then you are running Powershell version 1.
  • If $PSVersionTable does exist, then the version info will be displayed. (See the value for "PSVersion").


function Get-PSVersion {

if (test-path variable:psversiontable) {$psversiontable.psversion}
else {[version]""}


Installing Powershell Version 3

Execution Policy

Powershell will not run scripts without the proper execution policy. By default unsigned scripts will not be run.


If you set the execution policy for the local computer (the default) or the current user, the change is saved in the registry and remains effective until you change it again.
Get-ExecutionPolicy -list
Lists the current execution policy
Set-ExecutionPolicy -ExecutionPolicy <PolicyName>
Changes the execution policy.
Put the following code in the profile for PowerShell ISE:
 Set-ExecutionPolicy -ExecutionPolicy Unrestricted

OR (recommended)

 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

Executing from the DOS command line

powershell.exe -ExecutionPolicy [Bypass|Unrestricted] -Command .\<PS-script>.ps1

PowerShell ISE

PSModulePath Environment Variable

New-PsDrive -Scope Global -Name MyMod -PSProvider FileSystem -Root (($env:PSMODULEPATH -split ";")[0])

PowerGUI Editor & .exe compiler


Regex - Regular Expressions in Powershell