描述:我正在从ruby脚本(.rb)文件运行/执行powershell
exec "powershell.exe Import-Module PSWindowsUpdate"
我从“Windows Update PowerShell Module”下载了PSWindowsUpdate
模块,并将文件复制到以下位置:
%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运行时,它运行良好且花花公子。
我正在使用:
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 :(得分:2)
我跑了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:指定的模块' PSWindowsUpdate'没装,因为 在任何模块目录中找不到有效的模块文件。行: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"):
这解决了这个问题,我还没有永久的解决方案,因为这只是暂时的。设置时