This is the built-in help made by Microsoft for the command 'Invoke-Expression', in PowerShell version 2 - as retrieved from
Windows version 'Microsoft® Windows Vista™ Ultimate ' PowerShell help files on 2016-06-23.
For PowerShell version 3 and up, where you have Update-Help, this command was run just before creating the web pages from the help files.
Runs commands or expressions on the local computer.
Invoke-Expression [-Command] <string> [<CommonParameters>]
The Invoke-Expression cmdlet evaluates or runs a specified string as a command and returns the results of the expression or command. Without Invo
ke-Expression, a string submitted at the command line would be returned (echoed) unchanged.
<
Online version: http://go.microsoft.com/fwlink/?LinkID=113343
Invoke-Command
<
-------------------------- EXAMPLE 1 --------------------------
C:\PS>$command = "Get-Process"
C:\PS> $command
Get-Process
C:\PS> invoke-expression $command
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
296 4 1572 1956 20 0.53 1348 AdtAgent
270 6 1328 800 34 0.06 2396 alg
67 2 620 484 20 0.22 716 ati2evxx
1060 15 12904 11840 74 11.48 892 CcmExec
1400 33 25280 37544 223 38.44 2564 communicator
...
Description
-----------
This example demonstrates the use of Invoke-Expression to evaluate an expression. Without Invoke-Expression, the expression is printed, but not e
valuated.
The first command assigns a value of "Get-Process" (a string) to the $command variable.
The second command shows the effect of typing the variable name at the command line. Windows PowerShell echoes the string.
The third command uses Invoke-Expression to evaluate the string.
-------------------------- EXAMPLE 2 --------------------------
C:\PS>invoke-expression -command "C:\ps-test\testscript.ps1"
C:\PS> "C:\ps-test\testscript.ps1" | invoke-expression
Description
-----------
These commands use Invoke-Expression to run a script, TestScript.ps1, on the local computer. The two commands are equivalent. The first uses the
Command parameter to specify the command to run. The second uses a pipeline operator (|) to send the command string to Invoke-Expression.
-------------------------- EXAMPLE 3 --------------------------
C:\PS>$cmd = 'get-process | where {$_.cpu -gt 1000}'
C:\PS> iex $command
Description
-----------
This example runs a command string that is saved in the $cmd variable.
The command string is enclosed in single quotation marks because it includes a variable, $_, which represents the current object. If it were encl
osed in double quotation marks, the $_ variable would be replaced by its value before it was saved in the $command string.
-------------------------- EXAMPLE 4 --------------------------
C:\PS>$cmdlet_name = "get-eventlog"
C:\PS> $example_number = 1
C:\PS> $example_code = (get-help $cmdlet_name).examples.example[($example_number-1)].code
C:\PS> invoke-expression $example_code
Description
-----------
This command retrieves and runs the first example in the Get-EventLog cmdlet help topic.
To run an example of a different cmdlet, change the value of the $cmdlet_name variable to the name of the cmdlet. And, change the $example_number
variable to the example number you want to run. The command will fail if the example number is not valid.