Powershell lento começando no Windows 10

8

Eu tenho problema com o início lento do prompt do powershell no Windows 10 (Versão 1703 - Atualização de criadores).

Especificações do meu hw (máquina bastante rápida): Disco rígido Intel i5-7440HQ (Quad Core) / 32 GB DDR4 RAM / 512 Samsung SSD.

Eu tentei ignorar o perfil e a política de execução, mas isso não muda nada:

powershell -noprofile -ExecutionPolicy Bypass ( Measure-Command { powershell "Write-Host 1" } ).TotalSeconds

6,228067

Meus amigos do mesmo laptop com o Windows 10 sem Atualização de criadores executam o powershell em menos de 0,5 segundo.

Também tentei fazer alguma compilação com ngen.exe mas não ajudou:

$env:path = [Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory()
[AppDomain]::CurrentDomain.GetAssemblies() | % {
  if (! $_.location) {continue}
  $Name = Split-Path $_.location -leaf
  Write-Host -ForegroundColor Yellow "NGENing : $Name"
  ngen install $_.location | % {"'t$_"}
}

Alguma ideia de como posso investigar este problema?

Saudações

    
por mike 24.05.2017 / 16:31

3 respostas

2

O que você pode tentar é criar um atalho para o powershell.exe, clique com o botão direito nele > propriedades, vá para as opções de guia, clique em "usar console legado". Meu leitor de tela (mágica e zoomtext) não suportou o 'novo' çonsole que veio com a atualização de queda (o Powershell ficou muito lento) Com o legado em tudo funciona bem novamente.

    
por 15.01.2018 / 11:36
1

Isso estava acontecendo comigo também - embora talvez não seja o melhor caminho, adicionando powershell.exe à lista de As exclusões do Windows Defender aceleraram de 20 segundos para < 1 segundo.

Usando o console legado, a limpeza do PSReadLine e a execução do ngen não pareciam ajudar em nada.

    
por 05.03.2019 / 21:12
-1

Eu tive o mesmo problema por um bom tempo até que o PowerShell começou a falhar na inicialização com o seguinte erro:

Exception:
System.OutOfMemoryException: Array dimensions exceeded supported range.
   at System.Collections.Generic.List'1.set_Capacity(Int32 value)
   at System.Collections.Generic.List'1.EnsureCapacity(Int32 min)
   at System.Collections.Generic.List'1.Add(T item)
   at System.IO.File.InternalReadAllLines(String path, Encoding encoding)
   at Microsoft.PowerShell.PSConsoleReadLine.<ReadHistoryFile>b__67_0()
   at Microsoft.PowerShell.PSConsoleReadLine.WithHistoryFileMutexDo(Int32 timeout, Action action)
   at Microsoft.PowerShell.PSConsoleReadLine.DelayedOneTimeInitialize()
   at Microsoft.PowerShell.PSConsoleReadLine.Initialize(Runspace runspace, EngineIntrinsics engineIntrinsics)
   at Microsoft.PowerShell.PSConsoleReadLine.ReadLine(Runspace runspace, EngineIntrinsics engineIntrinsics)
-----------------------------------------------------------------------

Isso me levou ao problema existente no Github: link

Tentei excluir o arquivo de histórico em ~\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ , que tinha mais de 6 GB e, depois disso, o console do PowerShell começou a abrir rapidamente.

Talvez a lentidão com que você passa é o PowerShell tentando ler um arquivo de histórico grande (que ainda não é grande o suficiente para causar OutOfMemory ).

    
por 19.10.2018 / 09:19