Adalon
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору У меня вопросы по PowerShell. 1. Решил исправить проблему с PSReadLine (не вводились заглавные буквы). Читаю инструкцию на Гитхабе https://github.com/PowerShell/PSReadLine Сперва, дескать, надо обновить PowerShellGet. Install-Module -Name PowerShellGet -Force Exit Так вот, после этого команды PowerShellGet типа Install-Module перестали исполняться. Написано было, что команды в модуле присутствуют, но не загружены. ОК, исполняем Import-Module PowerShellGet (предварительно включив Set-ExecutionPolicy Unrestricted). Почему же не было про Import-Module в инструкции? Там просто написано "After installing PowerShellGet, you can simply run Install-Module PSReadLine -AllowPrerelease -Force to get the latest prerelease version of PSReadLine". По факту никакого simply run не было. Даже в инструкции на MS https://docs.microsoft.com/ru-ru/powershell/scripting/gallery/installing-psget?view=powershell-5.1 Нет ни слова о том, что надо потом делать Import-Module. Почему? Я предполагаю то, что все эти инструкции даны при условии, что уровень безопасности был с самого начала понижен, т.е. Set-ExecutionPolicy установлен в положение Unrestricted, а в скрипте установки модулей автоматически прописывался их импорт в сессию пользователя. Но т.к. изначально я не менял политику, то и самая первая команда по обновлению "Install-Module -Name PowerShellGet -Force" привела к тому, что модуль-то установился, но импортирован в сессию не был. Пришлось вручную. Я прав? Или в чем собака порылась? 2. После того, как я всё это сделал, команда Get-Module -ListAvailable вывела мне то, что присутствуют как старые версии PackageManagement, PowerShellGet и PSReadLine, так и новые. Отсюда два подвопроса: а) где задаётся какие модули будут запускаться/использоваться? б) как корректно удалить эти старые версии? 3. После того, как я обновил NuGet, PowerShellGet и PSReadLine (для которого всё это и затевалось), я обнаружил, что первые два установились в Program Files, а вот новая версия PSReadLine (была 2.0.0, стала 2.1.0) установилась в Users. Почему так? Почему для первых двух не надо ничего делать, а вот для третьей придется в следующий раз применять -Scoope AllUsers, чтобы установка произошла в Program Files? |