3

描述:我正在从 ruby​​ 脚本 (.rb) 文件运行/执行 powershell

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 运行它时,它运行得很好而且很漂亮。

我在用着:

  • 视窗 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
4

1 回答 1

3

我跑了powershell.exe $env:PSModulePath,这给了我:

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

然后我将文件夹复制到C:\Program Files (x86)\WindowsPowerShell\Modules

然后我得到:

导入模块:未加载指定的模块“PSWindowsUpdate”,因为在任何模块目录中都找不到有效的模块文件。在行:1 字符: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"):

这解决了这个问题,我还没有永久的解决方案,因为这只是暂时的。设置时

于 2015-01-27T11:23:26.990 回答