Automatically Launching ISESteroids

To launch ISESteroids you can run Start-Steroids, or import the module via Import-Module -Name ISESteroids.

To launch ISESteroids you can run Start-Steroids, or import the module via Import-Module -Name ISESteroids. Both have the same effect, and ISESteroids loads.

The launch of ISESteroids may be delayed if it cannot find the license server or if your network is blocking 8.8.8.8.

To check whether network conditions cause a slow start, simply disconnect from the Internet before you launch ISESteroids and see if it launches (much) faster without Internet connectivity. You can re-enable your Internet connectivity once ISESteroids has launched.

If you are using ISESteroids frequently, you can automatically load it whenever you launch the ISE editor: simply add Start-Steroids to your PowerShell Profile Script.

Quickly Explained: Profile Scripts

To customize your PowerShell environment, PowerShell supports Profile Scripts that run automatically whenever PowerShell launches. You can add arbitrary commands to a profile script, define default variables, load Snap-Ins (if you still use these), change color settings or PowerShell Preferences.

How it Works…

Whenever PowerShell starts, it checks a number of predefined file paths, and if these files exist, runs them. Since Profile Scripts are regular scripts, they require that script execution is permitted, so in order to use Profile Scripts, you may have to enable script execution first. This needs to be done only once:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Application-Specific Profile Scripts

Profile scripts can be application-specific, so each PowerShell Host uses a different profile script. That’s great because you may want to set up the PowerShell Console differently than the ISE editor.

The path to the most important personal and application-specific profile script can always be found in $profile. Since it is application-specific, the path depends on the PowerShell Host. When you dump $profile in the ISE editor, it reports this path:

PS> $profile

C:\Users\HenryI\Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1

If you do the same from within the PowerShell Console or VSCode, the path is different, respectively. This is the path for the PowerShell Console:

PS> $profile

C:\Users\HenryI\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

Application-Unspecific Profile Scripts

Anything you want to automatically execute in any PowerShell Host can be added to the application-unspecific profile:

PS> $profile.CurrentUserAllHosts

C:\Users\HenryI\Documents\WindowsPowerShell\profile.ps1

The unspecific profile script is called profile.ps1. Any host-specific profile script prepends the file name with the host name:

Application Host Name Profile Name
PowerShell Console Microsoft.PowerShell Microsoft.PowerShell_profile.ps1
ISE Editor Microsoft.PowerShellISE Microsoft.PowerShellISE_profile.ps1
VSCode Microsoft.VSCode Microsoft.VSCode_profile.ps1
All   profile.ps1

None of these scripts exist by default. You may need to create them yourself if you want to use them.

Automatically Loading ISESteroids

To automatically load ISESteroids whenever you launch the ISE editor, simply add Start-Steroids to the ISE profile script.

1. Open Profile Script

It’s super easy to open a profile script from within ISESteroids (and create it on-the-fly if it does not yet exist). So launch ISESteroids and once it is loaded, click on the “man” button in the toolbar:

Image

The script opens. If it does not yet exist, ISESteroids offers to create it for you.

2. Add “Start-Steroids” to Profile Script

Add Start-Steroids to the profile script, and save the script. That’s all. Next time you launch the ISE editor, it automatically launches ISESteroids.

To test-drive, close ISESteroids, and launch the ISE editor again. ISESteroids should now start automatically.

Skipping Automatic Loading

If you have set up your profile script as described above, whenever you launch ISE, it loads ISESteroids. If you want to launch ISE without ISESteroids, you can use the parameter -NoProfile to prevent the profile scripts from running.

For example, open a PowerShell Console, then run this command:

ise -noprofile