Set Tab Process Growth for Internet Explorer (PowerShell)

Introduction

This sample can help you operate the “TabProcGrowth” registry entry to set Tab Process Growth for Internet Explorer 8 or later versions. This entry sets the rate at which Internet Explorer creates New Tab processes and shows how to obtain and set Tab Process Growth setting for Internet Explorer by using PowerShell script.

Scenarios

If you use Internet Explorer 7, all tabs open under the same Iexplore.exe process. However, the only exception is if you are on a Windows Vista computer and you are moving from Protected to Unprotected mode. Internet Explorer 8 or later versions had a big makeover in this area. You will now notice that new tabs typically open in a new process.  By default, Internet Explorer 8 starts with two instances of Iexplore.exe and grows the number of tab processes as needed based on the available RAM, the number of tabs, the integrity levels for tabs, and the number of distinct Internet Explorer sessions.

Script

This script contains the following advanced functions:

You can use this script in the following ways:

Method 1:

  1. Download the script and copy it to your computer.
  2. Open the script file by using Notepad or any other script editors.
  3. Scroll down to the end of the script file, and then add the code to call the functions.
  4. Save the file and then run the script on the computer.

Method 2:

  1. Rename scriptname.ps1 to scriptname.psm1 (PowerShell Module file)
  2. Run the Import-Module cmdlet to import this module file in PowerShell Console.
    Import-Module filepath\scriptname.psm1 

To obtain detailed information about how to use these functions, run the following command to retrieve the help information:
Get-Help functionName -detailed
For example:
Get-Help Get-OSCIETabProcGrowthProperty -detailed

Here are some code snippets for your references. To get the complete script sample, please click the download button at the beginning of this page.

PowerShell
Edit|Remove
$OSCIETabProcGrowth = New-Object PSObject 
$OSCIETabProcGrowth | Add-Member NoteProperty "ComputerName" $Computer 
$OSCIETabProcGrowth | Add-Member NoteProperty "IEVersion" $IeVersion  
$OSCIETabProcGrowth | Add-Member NoteProperty "TabProcGrowth" $null 
$OSCIETabProcGrowth | Add-Member NoteProperty "SettingType" $null 
$OSCIETabProcGrowth | Add-Member NoteProperty "Description" $null 
         
$BaseKeyTabProcGrowth = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey(` 
[Microsoft.Win32.RegistryHive]::CurrentUser,$Computer) 
  
$KeyTabProcGrowth = $BaseKeyTabProcGrowth.OpenSubKey(` 
"Software\Microsoft\Internet Explorer\Main"$false) 
  
$OSCIETabProcGrowth.SettingType = $KeyTabProcGrowth.GetValueKind("TabProcGrowth"$OSCIETabProcGrowth.TabProcGrowth = $KeyTabProcGrowth.GetValue("TabProcGrowth"$OSCIETabProcGrowth.Description = "descriptiton" 
  
$OSCIETabProcGrowth

Examples

Example 1: Get the Tab Process Growth setting for Internet Explorer. 
Command:
Get-OSCIETabProcGrowthProperty
Screenshot:

Example 2: Set the Tab Process Growth setting for Internet Explorer.  
Command: Set-OSCIETabProcGrowthProperty  –TabProcGrowth  <TabProcGrowth>
Screenshot:

Prerequisites

Windows PowerShell 2.0

Additional Resources

Technical Resources:

32-bit browser applications may not work as expected in Internet Explorer 10 
Opening a New Tab may launch a New Process with Internet Explorer 8.0