Powershell의 열기 / 응답 속도가 매우 느림 3.0을 실행하는

Windows 7 64 비트에서 PowerShell 3.0을 실행하는 데 문제가 있습니다. 실행할 때 열거 나 시작하는 데 시간이 오래 걸립니다. 또한 거의 모든 것에 대한 응답으로 상당히 느립니다.

내 프로필이 내 문서에 저장되어 있고 내 문서 폴더가 네트워크에 동기화되어 있기 때문일 수 있습니다.

네트워크 대신 로컬로 사용할 수 있도록 프로파일의 위치를 ​​옮길 수있는 방법이 있습니까?



답변

PowerShell은 .NET Framework 에 의존하므로
업데이트를 시도 할 수 있습니다.

이 스크립트는 또한 내 속도를 도왔다

$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
}

답변

NGEN에 대한 위의 답변은 시작 시간을 30 초 이상에서 5 미만으로 줄였습니다.

그러나 몇 초 기다린 후에 Ctrl-C를 누르면 프롬프트가 표시되는 경우를 이미 보았으며 위의 NGEN 트릭을 이미 수행 한 경우 스크립트 속도가 느려지는 것으로 의심됩니다.

30 초 이상이고 위의 NGEN 트릭을 이미 시도한 경우 가장 일반적인 이유는 개인 및 시스템 프로필 powershell 스크립트를 시작하는 데 시간이 오래 걸리기 때문입니다. 10 초 미만의 지연에 대해 불평하는 경우 시작 속도가 느린 .net 일 수 있습니다.

VM을 사용 중이고 VM 호스트가 과도하게 프로비저닝되고 리소스가 부족한 대부분의 VM 환경과 같이 완전히 혼잡하고 IO에 바인딩되어 있다면 바로 그 것입니다.


답변

Powershell 프로파일을 저장할 수있는 몇 가지 기본 위치가 있습니다.

  • 첫 번째 위치는 전체 위치이며 모든 사용자가 사용자 정의 된 Powershell 프로파일을 갖기를 원할 때 유용합니다. 이 프로필은

    C:\WINDOWS\system32\WindowsPowerShell\v1.0\Profile.ps1
    
  • 두 번째 위치는 로컬 프로필을위한 것이며 각 사용자 계정에 따라 다릅니다. 이 파일은 글로벌 구성 파일을 대체하며 다음 위치에 있어야합니다.

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

테스트로 전체 Powershell 프로파일 (system32에 있음)을 수정하고 속도가 빠른지 확인하십시오. 그렇다면 네트워크 속도가 느려진다는 것을 알게 될 것입니다.


답변

최근에 바이너리 PowerShell 모듈을 개발할 때 비슷한 문제가 발생했습니다. 거의 모든 것에 반응하여 콘솔이 매우 느 렸습니다. Steven Penny의 스크립트가 나를 위해 일했지만 PowerShell 인스턴스마다 만 작동했습니다. 나는 그의 대본에서 무슨 일이 있었는지 이해하지 못했다. 그래서 나는 문제가 어디 있는지 알기 위해 한 줄씩 갔다.

결국 내 경로 환경 변수가되었습니다. 내 경로 변수에 UNC 경로 문자열이 있었고 지연이 발생했습니다. PowerShell은 각 실행에 대한 연결을 열거 나 닫습니다 (예 : Enter 키를 누를 때마다).