Windows PowerShell Integrated Scripting Environment (ISE)

December 30, 2008




The Windows PowerShell Integrated Scripting Environment (ISE) is a host application that enables you to run commands, write, test and debug scripts in a friendly, syntax-colored, Unicode-compliant environment.





What does it have to offer?

1. A command pane for running interactive commands, just as you would in the Windows PowerShell console. Just type a command and press Enter. The output appears in a separate output pane.

2. A script pane to compose, edit, debug, and run functions, and scripts.

3. Multiple tabs, each with its own command and script pane to allow you to work on one or several tasks independently.

4. The ability to edit text in complex scripts and right-to-left languages.

5. You can extend every aspect of ISE through its underlying scripting object model with your own code.

6. Separate profile.

Note: ISE is a WPF application and it requires .NET 3.5.

Check the Windows PowerShell Team recent posts for more information:

My PowerShell_ISE Profile
My Powershell_ISE Profile Part 2
PowerShell ISE Can Do a Lot More Than You Think


One thing to keep in mind, ISE is not perfect and is in constant developing by the PowerShell Team. Don’t hesitate to tell what you think if you encounter any problem/bug when you use it or have any suggestion/feature you would like to have, just submit your feedback on Microsoft Connect. Remember, this is a CTP version and the team is hoping to hear from you and improve the product based on your feedback.


Here is a simple utility function I have in my profile to load ISE:

function Invoke-ISE{     
    param (     
        foreach($f in $file){    
            & $path (resolve-path $f)    
     } else {    
        & $path        
Set-Alias ISE Invoke-ISE  


# this will launch a fresh blank instance of ISE (using the function alias)
PS > ise

# load ISE with a bunch of scripts ready to be edited
PS > ise (dir *.ps1)



Add comment
facebook linkedin twitter email

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>



  1. Mark SchillDecember 31, 2008 ב 04:46

    Very nice indeed.

    In my environment I use a psdrive to shortcut scripts:\ to my scripts directory. ISE doesn’t know how to handle this so I changed line 9 to return the “true” path of the file on the drive.

    & $path ( ([system.IO.FileInfo]$f).FullName)

  2. AJ§May 14, 2011 ב 20:11

    For auto-completion, the tab character was employed. Thus, using tabs for formatting code is rendered at least a real hastle. How can auto-completion (tab-complete) be turned-off or at lease changed to employ another character /key-stroke combination?

  3. ScriptFanaticMay 15, 2011 ב 10:19

    You cannot change or turn off the auto-completion control character. When you press the TAB key at the beginning of a line it will indent the line. If you press it in an expression like: $object.[TAB] it will try to auto complete the object members.

    One hack you may try is to remove the function that do auto completion – Remove-Item function:TabExpansion. TabExpansion is the function that is responsible for auto completion. That said, you’s have to create it when you do want tab completion back.

    Another think that comes in mind is to add a global Boolean variable to control auto completion and check for that variable inside the TabExpansion function.