O Windows PowerShell não consegue encontrar os módulos

2

Sou muito novo no PowerShell e não administro o Windows há algum tempo. Eu fiz o download do zip do módulo do Windows Update PowerShell ( link ) e coloquei %código%. O PowerShell não está encontrando esses módulos.

Eu não quero armazená-los no meu diretório de usuários. Eu quero que eles estejam nos mesmos diretórios que todos os outros módulos PS de estoque.

    
por linuxadmin 15.08.2013 / 02:56

2 respostas

4

Sua pergunta indica que você extraiu para:

C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ Modules \ WindowsUpdate

Este não é o diretório correto. O módulo é denominado PSWindowsUpdate e, como tal, deve estar em um diretório denominado PSWindowsUpdate . Eu extraí o zip para:

C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ Modules \ PSWindowsUpdate

O seguinte importa o módulo e funciona como esperado:

Import-Module PSWindowsUpdate

    
por 15.08.2013 / 03:52
1

Como no vídeo que postei no comentário à sua pergunta original, você não deve colocar seus módulos no mesmo lugar em que a Microsoft coloca seus módulos. (por exemplo, C:\Windows\System32\WindowsPowershell\v1.0\Modules )

Então, onde você deve colocar seus módulos personalizados do Powershell? A resposta é simples. Você coloca seus módulos em um dos diretórios especificados em sua variável de ambiente PSModulesPath, que não é System32\WindowsPowershell\v1.0\Modules .

PS C:\Users\ryan> $Env:PSModulePath -split ';'
C:\Users\ryan\Documents\WindowsPowerShell\Modules
C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
C:\Program Files (x86)\Microsoft SQL Server0\Tools\PowerShell\Modules\

Agora, sei que você vê apenas um diretório específico do usuário. Mas você pode adicionar o caminho que quiser para essa variável de ambiente. E você pode fazer isso em toda a máquina, de modo que isso afete todos os usuários. Você pode fazer isso na GUI, indo para Propriedades Avançadas do Sistema, ou você pode fazê-lo na linha de comando usando setx . O comando set é bom apenas para a sessão atual, setx irá definir uma variável persistente em todo o sistema.

Você também pode tentar colocar o módulo PS em

C:\Users\All Users\Documents\WindowsPowershell\Modules

Mas eu não testei isso, então talvez você ainda precise adicionar uma variável de ambiente para esse diretório.

Edit: Por último, não se esqueça de criar um subdiretório para o seu módulo, então se o seu módulo é chamado Foo, você precisa criar o subdiretório Foo sob um desses PSModulePaths.

Aproveite sua jornada de aprendizagem do Powershell! :)

    
por 15.08.2013 / 21:23