Я хочу использовать Powershell в качестве командной строки Visual Studio и обнаружил, что путь к этому лежит через расширения сообщества Powershell, но у меня возникают проблемы при установке и импорте Pscx.

Из обычного (т.е. не запускаемого от имени администратора) приглашения Powershell; если я запускаю Install-Module Pscx я получаю сообщение об ошибке

Права администратора необходимы для установки модулей в «C:\Program Files\WindowsPowerShell\Modules». Войдите на компьютер с учетной записью, обладающей правами администратора, и повторите попытку или установите «D:\Documents\WindowsPowerShell\Modules», добавив «-Scope CurrentUser» к своей команде. Вы также можете попробовать запустить сеанс Windows PowerShell с повышенными правами (Запуск от имени администратора).

Я принял предложение и попытался запустить Install-Module Pscx -Scope CurrentUser , который не сообщил об ошибках. Но когда я запускаю Import-Module Pscx я получаю сообщение об ошибке

Указанный модуль 'Pscx' не был загружен, поскольку ни в одном каталоге модулей не было найдено допустимого файла модуля.

После запуска Remove-Module Pscx я запустил приглашение Powershell в качестве администратора, где мне удалось установить и импортировать Pscx, но, сделав это, я все еще не могу импортировать его из приглашения не-администратора Powershell. Моя последняя попытка была (в приглашении администратора) удалить модуль и установить его снова с -Scope AllUsers но это все равно выдает ту же ошибку, когда я пытаюсь Import-Module Pscx в приглашении без прав администратора.

Я работаю разработчиком более 30 лет, но каждый раз, когда я пытаюсь что-то сделать в Powershell, я чувствую себя глупо. Несмотря на всю замечательную документацию, мне просто не легко пользоваться. Может кто-нибудь, пожалуйста, помогите мне преодолеть это нынешнее страдание. Я не просто хочу решить проблему, но и пытаюсь понять, что происходит, в надежде, что это поможет мне добраться до того места, где я действительно могу понять, почему Powershell ведет себя, казалось бы, странно, что для меня мало смысла ,

Моя версия Powershell 5.0, сборка 10586, ревизия 494.

1 ответ1

0

Я понял, в чем проблема.

Install-Module с -Scope CurrentUser устанавливает модуль в папку %USERPROFILE%\Documents\WindowsPowerShell\Modules но эта папка не включена в переменную среды PSModulePath, поэтому Import-Module не может найти модуль. Как только я понял это, я добавляю следующее в свой профиль, чтобы меня больше не поймали.

if ($env:PSModulePath -notlike "*D:\Documents\WindowsPowerShell\Modules*")
{
  $env:PSModulePath = $env:PSModulePath + ";D:\Documents\WindowsPowerShell\Modules"
}

Обратите внимание, что, хотя мой %USERPROFILE% - это C:\Users\SteveC я переместил папку «Документы» со своего SSD-диска C на мой жесткий диск D, так что %USERPROFILE%\Documents разрешается в D:\Documents .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .