Como instalo e importo as extensões da comunidade Powershell para um usuário normal?

0

Eu quero usar o Powershell como meu prompt de comando do Visual Studio e descobri que o caminho para fazer isso é através das extensões da comunidade Powershell, mas estou tendo problemas para instalar e importar o Pscx.

De um prompt Powershell normal (ou seja, não executado como Administrador); se eu correr Install-Module Pscx eu recebo o erro

Administrator rights are required to install modules in 'C:\Program Files\WindowsPowerShell\Modules'. Log on to the computer with an account that has Administrator rights, and then try again, or install 'D:\Documents\WindowsPowerShell\Modules' by adding "-Scope CurrentUser" to your command. You can also try running the Windows PowerShell session with elevated rights (Run as Administrator).

Aceitei a sugestão e tentei executar o Install-Module Pscx -Scope CurrentUser , que não relatou erros. Mas quando eu corro Import-Module Pscx eu recebo o erro

The specified module 'Pscx' was not loaded because no valid module file was found in any module directory.

Após a execução de Remove-Module Pscx , executei um prompt do Powershell como administrador, onde consegui instalar e importar o Pscx, mas, depois de fazer isso, ainda não consegui importá-lo de um prompt Powershell não-administrativo. Minha última tentativa foi (no prompt do administrador) remover o módulo e instalá-lo novamente com -Scope AllUsers , mas isso ainda dá o mesmo erro quando tento Import-Module Pscx em um prompt não administrativo.

Sou desenvolvedor há mais de 30 anos, mas toda vez que tento fazer algo no Powershell, sinto-me estúpido. Apesar de toda a ótima documentação, eu simplesmente não acho fácil de usar. Alguém por favor pode me ajudar a superar essa miséria atual? Eu não quero apenas resolver o problema, mas também tentar entender o que está acontecendo, na esperança de que ele me ajude a alcançar aquele lugar onde eu possa realmente entender porque o Powershell está se comportando de uma maneira aparentemente estranha que faz pouco sentido para mim. .

Minha versão do Powershell é 5.0, build 10586, revisão 494.

    
por Steve Crane 01.03.2017 / 10:37

1 resposta

0

Eu descobri qual era o problema.

Install-Module com -Scope CurrentUser instala o módulo na pasta %USERPROFILE%\Documents\WindowsPowerShell\Modules , mas essa pasta não está incluída na variável de ambiente PSModulePath, portanto, Import-Module não pode encontrar o módulo. Uma vez que eu descobri isso, adiciono o seguinte ao meu perfil para que eu não seja pego novamente.

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

Observe que, enquanto meu %USERPROFILE% é C:\Users\SteveC , movi minha pasta Documentos da minha unidade SSD C para minha unidade HDD D, então %USERPROFILE%\Documents resolve para D:\Documents .

    
por 01.03.2017 / 11:45

Tags