为什么 Powershell 需要这么长时间才能初始化?

为什么 Powershell 需要这么长时间才能初始化?

当我启动 powershell 时,它需要大约 10-15 秒才能初始化并给出提示。有人知道第一次启动时它在做什么,这可能导致这种情况吗?这是 XP Pro,2 GB 内存,只有 Outlook 和 Firefox 以交互方式运行,相当直接。

答案1

Powershell 团队有一个在他们的博客上修复了这个问题

所提及网站的脚本内容 更新-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$_"}
         }
      }

答案2

您的互联网连接是否不稳定或者丢失?

可能依赖于 Windows 安全尝试联系证书颁发机构以获取证书撤销列表。如果没有互联网连接,您将不得不等待超时。

编辑:

您可以尝试使用 Sysinternal(/Microsoft)的 Process Explorer 进行调试。也许您可以看到该进程访问了哪些资源。

答案3

立即启动另一个实例需要多长时间?

如果快得多,那么您看到的是加载 .NET、PSH 和 Snapins 所需的时间。如果不是,那么很可能与配置文件有关(PSH 配置文件或类似联系 AD 1的内容)。

1我在远程工作时使用 PSCX 的 AD 提供商时看到了这种情况。

答案4

您的内容$profile可能会非常长,因此请检查一下。

相关内容