2015-01-27 6 views
2

Описание: Я бегу/выполнения PowerShell рубинового сценария (.rb файл)Указанный модуль не был загружен «PSWindowsUpdate»

exec "powershell.exe Import-Module PSWindowsUpdate" 

Я скачал PSWindowsUpdate модуль из «Windows Update PowerShell Module» и копируются файлы по следующему адресу:

%WINDIR%\System32\WindowsPowerShell\v1.0\Modules 

Когда я бегу выше я получаю следующее сообщение об ошибке:

Z:\Desktop>ruby windows_patch.rb 
Import-Module : The specified module 'PSWindowsUpdate' was not loaded because 
no valid module file was found in any module directory.At line:1 char:1 
+ Import-Module PSWindowsUpdate 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : ResourceUnavailable: (PSWindowsUpdate:String) [I 
    mport-Module], FileNotFoundException 
    + FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Comm 
    ands.ImportModuleCommand 

Однако, когда я запускаю это через Powershell, он работает отлично и денди.

Я использую:

  • Windows 7 x64
  • PowerShell v4
  • Рубин v2.1.5

Результат exec "powershell.exe ruby -e 'puts $:'" является:

C:/Ruby21/lib/ruby/site_ruby/2.1.0 
C:/Ruby21/lib/ruby/site_ruby/2.1.0/i386-msvcrt 
C:/Ruby21/lib/ruby/site_ruby 
C:/Ruby21/lib/ruby/vendor_ruby/2.1.0 
C:/Ruby21/lib/ruby/vendor_ruby/2.1.0/i386-msvcrt 
C:/Ruby21/lib/ruby/vendor_ruby 
C:/Ruby21/lib/ruby/2.1.0 
C:/Ruby21/lib/ruby/2.1.0/i386-mingw32 
+0

Попробуйте выполнить «exec» powershell.exe ruby ​​-e 'помещает $:' "', который будет печатать модули, доступные для сухой 'powershell'. – mudasobwa

+0

@mudasobwa добавил результат выше – abc123

+0

Итак, распакуйте модули в любое из известных мест (например, 'C:/Ruby21/lib/ruby ​​/ vendor_ruby'), а не'% WINDIR% \ System32 \ WindowsPowerShell \ v1.0 \ Modules' , Модули Ruby не являются модулями PS и наоборот. – mudasobwa

ответ

2

I пробег powershell.exe $env:PSModulePath, который дал мне:

\vmware-host\Shared Folders\Documents\WindowsPowerShell\Modules;C:\Program Files (x86)\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\M odules\

Затем я скопировал папку C:\Program Files (x86)\WindowsPowerShell\Modules

Затем я получил:

Import-Module : The specified module 'PSWindowsUpdate' was not loaded because no valid module file was found in any module directory.At line:1 char:39

Далее, я побежал:

PS C:\Users\Justin.Schuhmann> Set-ExecutionPolicy -Scope LocalMachine 

cmdlet Set-ExecutionPolicy at command pipeline position 1 
Supply values for the following parameters: 
ExecutionPolicy: Unrestricted 

Execution Policy Change 
The execution policy helps protect you from scripts that you do not trust. Changing the execution policy might expose 
you to the security risks described in the about_Execution_Policies help topic at 
http://go.microsoft.com/fwlink/?LinkID=135170. Do you want to change the execution policy? 
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): 

Это решается вопрос, у меня нет постоянного решения, поскольку это временно. При установке

Смежные вопросы