Mam problem z uruchomieniem programu PowerShell 3.0 w systemie Windows 7 64-bit. Uruchamianie / uruchamianie zajmuje bardzo dużo czasu. Jest również dość powolny w odpowiedzi na prawie wszystko.
Myślę, że może to wynikać z faktu, że mój profil jest przechowywany w moich dokumentach, a folder moich dokumentów jest synchronizowany z naszą siecią.
Czy jest jakiś sposób na przeniesienie lokalizacji mojego profilu, aby mógł on być lokalny zamiast przez sieć?
windows-7
powershell
czuroski
źródło
źródło
Odpowiedzi:
PowerShell opiera się na .NET Framework , możesz spróbować zaktualizować to.
Ten skrypt również pomógł mojej prędkości
źródło
Generate native images for an assembly and its dependencies and install them in the Native Images Cache. If /queue is specified compilation job is queued up. If a priority is not specified, the default priority used is 3.
Powyższa odpowiedź, która mówi o NGEN, skróciła mój czas uruchamiania z ponad 30 sekund do poniżej 5.
Jednak widziałem również przypadki, w których naciśnięcie Ctrl-C po odczekaniu kilku sekund powoduje wyświetlenie monitu i już wykonałem sztuczkę NGEN powyżej i podejrzewam, że to moje skrypty spowalniają mnie.
Jeśli minęło ponad 30 sekund, a wypróbowałeś już sztuczkę NGEN powyżej, najczęstszą przyczyną jest to, że skrypty PowerShell profilu osobistego i systemowego długo się uruchamiają. Jeśli narzekasz na opóźnienie krótsze niż 10 sekund, to prawdopodobnie .net zaczyna się wolno.
Jeśli pracujesz na maszynie wirtualnej, a host maszyny wirtualnej jest całkowicie zajęty i związany z operacjami we / wy, podobnie jak większość środowisk VM o nadmiernej dostępności i niedofinansowanych, to tyle.
źródło
Istnieje kilka różnych domyślnych miejsc, w których można przechowywać profil Powershell.
Pierwsza lokalizacja to lokalizacja globalna i byłaby przydatna, gdy chcesz, aby wszyscy użytkownicy mieli dostosowany profil programu PowerShell. Ten profil powinien zostać umieszczony w
Druga lokalizacja dotyczy profilu lokalnego i byłaby specyficzna dla każdego konta użytkownika. Ten plik zastępuje globalny plik konfiguracyjny i powinien zostać umieszczony w
W ramach testu spróbuj zmodyfikować globalny profil Powershell (znajdujący się w systemie32) i sprawdź, czy to przyspieszy. Jeśli tak, będziesz wiedział, że powolność jest w jakiś sposób spowodowana siecią i możesz stamtąd iść do przodu.
źródło
Ostatnio miałem podobny problem podczas tworzenia binarnego modułu PowerShell. Moja konsola była bardzo wolna w odpowiedzi na prawie wszystko. Skrypt Stevena Penny'ego zadziałał dla mnie, ale tylko na instancję PowerShell. Naprawdę nie rozumiałem, co się dzieje w jego scenariuszu; więc szedłem linia po linii, żeby zobaczyć, gdzie jest mój problem.
Skończyło się to na zmiennej środowiskowej mojej ścieżki. Miałem ciąg ścieżki UNC w mojej zmiennej ścieżki i opóźnienie zostało spowodowane, ponieważ PowerShell otworzy / zamknie połączenie dla każdego wykonania (tj. Za każdym razem, gdy naciśniesz klawisz Enter).
źródło