Powershell очень медленно открывает / отвечает

У меня возникла проблема с PowerShell 3.0 в 64-разрядной версии Windows 7. Оно принимает очень
долгое время, чтобы открыть / запустить при запуске. Он также довольно вялый в ответ на
почти все, что угодно.

Я считаю, что это может быть связано с тем, что мой профиль хранится в моих документах,
папка "Мои документы" синхронизирована с нашей сетью.

есть ли способ, что я могу переместить мой профиль, так что я могу иметь
это локальный, а не по сети?

9
задан Steven Penny
20.12.2022 10:30 Количество просмотров материала 2364
Распечатать страницу

4 ответа

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
}
16
отвечен Steven Penny 2022-12-21 18:18

приведенный выше ответ, который говорит о NGEN, сократил время запуска с более чем 30 секунд до менее 5.

однако я также видел случаи, когда нажатие Ctrl-C после ожидания нескольких секунд приводит меня к подсказке, и я уже сделал трюк NGEN выше, и в этом случае я подозреваю, что это мои сценарии, которые замедляют меня.

Если это более 30 секунд, и вы уже пробовали трюк NGEN выше, наиболее распространенной причиной является то, что ваш личный и системный профиль powershell запуск сценариев занимает много времени. Если вы жалуетесь на задержку менее 10 секунд, то это, вероятно, .net, который медленно запускается.

Если ты на ВМ и хост-полностью hogtied и ИО-связаны, как и большинство за подготовкой и ресурсами виртуальных машин, то это.

1
отвечен Warren P 2022-12-21 20:35

есть несколько различных мест по умолчанию профиль PowerShell, могут быть сохранены.

  • первое место-это глобальное место и будет полезно, когда вы хотите все пользователи должны иметь настраиваемый профиль Powershell. Этот профиль должен быть помещается в

    C:\WINDOWS\system32\WindowsPowerShell\v1.0\Profile.ps1
    
  • второе положение для местного профиля и было бы специфически к каждому учетная запись пользователя. Этот файл переопределяет файл глобальной конфигурации и должен быть помещенный в

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

в качестве теста попробуйте изменить глобальный профиль Powershell (находится в system32) и посмотрим, ускорит ли это процесс. Если это так, вы узнаете, что медлительность так или иначе благодаря сети можно и двигаться вперед оттуда.

0
отвечен jmreicha 2022-12-21 22:52

недавно у меня была аналогичная проблема при разработке двоичного модуля PowerShell. Моя консоль была очень медленной в ответ почти на все. Сценарий Стивена Пенни работал на меня, но только для каждого экземпляра PowerShell. Я действительно не понимал, что происходит в его сценарии; поэтому я пошел построчно, чтобы увидеть, где моя проблема.

это закончилось тем, что с моей переменной среды path. У меня была строка пути UNC в переменной path, и задержка была вызвана, потому что PowerShell будет открывать/закрывать соединение для каждого исполнения (т. е. каждый раз, когда вы нажимаете клавишу Enter).

0
отвечен Aaron Ray 2022-12-22 01:09

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх