Scenario / Questions

When I fire up powershell it takes ~10-15 seconds to init and give me a prompt. Anyone know what it’s doing when you first fire it up that might contribute to that? This is XP Pro, 2 GB of memory, only Outlook and Firefox running interactively, fairly straight-up.

Find below all possible solutions or suggestions for the above questions..

Suggestion: 1

The Powershell team has a fix for this on their blog.

Content of the script from the site mentioned Update-gac.ps1

Set-Alias ngen (Join-Path ([System.Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory()) ngen.exe)
[AppDomain]::CurrentDomain.GetAssemblies() |
    sort {Split-path $_.location -leaf} |
    %{
        $Name = (Split-Path $_.location -leaf)
        if ([System.Runtime.InteropServices.RuntimeEnvironment]::FromGlobalAccessCache($_))
        {
            Write-Host "Already GACed: $Name"
        }else
        {
            Write-Host -ForegroundColor Yellow "NGENing      : $Name"
            ngen $_.location | %{"`t$_"}
         }
      }

Suggestion: 2

Do you have a flaky/missing internet connection?

Could depend on Windows Security trying to contact certificate authority to the get the certificate revoke list. If there is no internet connection, you’ll have to wait for the timeout.

Edit:

You could try to debug this using Sysinternal’s(/Microsoft’s) Process Explorer. Maybe you can see which resources are accessed by the process.

Suggestion: 3

How long does it take to immediately start up another instance?

If much quicker, then you are seeing the time it takes to load .NET, PSH and Snapins. If not, then likely to be profile related (either PSH profile or something like contacting AD1).

1 I’ve see this with PSCX’s AD provider when working remotely.