Powershell muito lento para abrir / responder

10

Estou tendo um problema com o PowerShell 3.0 no Windows 7 de 64 bits. É preciso muito muito tempo para abrir / iniciar quando executá-lo. Também é bastante lento em resposta a quase tudo.

Acredito que isso se deva ao fato de meu perfil estar armazenado em meus documentos, e a pasta my documents está sincronizada com a nossa rede.

Existe alguma maneira que eu possa mover a localização do meu perfil para que eu possa ter é local em vez de através da rede?

    
por czuroski 04.04.2013 / 21:02

4 respostas

16

O PowerShell conta com o .NET Framework , você pode tentar atualizar isso.

Esse script também ajudou minha velocidade

$Env:PATH = [Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory()
[AppDomain]::CurrentDomain.GetAssemblies() | % {
  $pt = $_.Location
  if (! $pt) {continue}
  if ($cn++) {''}
  $na = Split-Path -Leaf $pt
  Write-Host -ForegroundColor Yellow "NGENing $na"
  ngen install $pt
}
    
por 06.07.2014 / 20:56
1

A resposta acima que fala sobre a NGEN reduziu meu tempo de inicialização de mais de 30 segundos para menos de 5.

No entanto, eu também vi casos em que apertar Ctrl-C depois de esperar alguns segundos me leva a um prompt, e eu já fiz o truque NGEN acima, e nesse caso, eu suspeito que são meus scripts que estão me atrasando.

Se forem mais de 30 segundos e você já tiver tentado o truque NGEN acima, o motivo mais comum é que seus scripts de powershell pessoais e de perfil do sistema estão demorando muito para serem iniciados. Se você está reclamando de um atraso de menos de 10 segundos, então é provável que o .net demore para começar.

Se você estiver em uma VM e o host da VM estiver totalmente imobilizado e obrigado a EI, como a maioria dos ambientes de VM com excesso de provisionamento e recursos insuficientes, então é isso.

    
por 14.09.2016 / 15:11
0

Existem alguns locais padrão diferentes nos quais o perfil do Powershell pode ser armazenado.

  • O primeiro local é o local global e seria útil quando você quiser todos os usuários têm um perfil personalizado do Powershell. Este perfil deve ser colocado em

    C:\WINDOWS\system32\WindowsPowerShell\v1.0\Profile.ps1
    
  • O segundo local é para o perfil local e seria específico para cada conta de usuário. Este arquivo substitui o arquivo de configuração global e deve ser colocado em

    C:\Username\My Documents\WindowsPowerShell\Profile.ps1
    

Como teste, tente modificar o perfil global do Powershell (localizado em system32) e veja se isso acelera as coisas. Se isso acontecer, você saberá que a lentidão é de alguma forma devido à rede e você pode avançar a partir daí.

    
por 04.04.2013 / 23:21
0

Recentemente, tive um problema semelhante ao desenvolver um módulo PowerShell binário. Meu console era extremamente lento em resposta a quase tudo. O script de Steven Penny funcionou para mim, mas apenas por exemplo do PowerShell. Eu realmente não entendi o que estava acontecendo em seu roteiro; então eu fui linha por linha para ver onde estava o meu problema.

Acabou ficando com a variável ambiental do meu caminho. Eu tinha uma string de caminho UNC na variável path, e o atraso foi causado, porque o PowerShell abrirá / fechará a conexão para cada execução (ou seja, toda vez que você pressionar a tecla enter).

    
por 16.10.2014 / 15:28