导入模块WebAdministration从脚本不会加载,但确实在命令行

问题描述:

我来了到使用PowerShell脚本生成的项目。该版本利用WebAdministration模块来管理本地IIS实例。当我运行构建脚本时,尝试导入WebAdministration时会引发以下错误。导入模块WebAdministration从脚本不会加载,但确实在命令行

Error: 06/29/2016 17:28:35: At C:\dev\src\nib-ravendb\build\ConfigureIis.ps1:10 char:1 + Import-Module WebAdministration + ~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~ [<<==>>] Exception: The specified module 'WebAdministration' was not loaded because no valid module file was fo und in any module directory. ERROR: 1

如何过,当我在PowerShell命令行运行Import-Module WebAdministration模块引入时,我可以从它使用的功能。随后运行构建脚本仍然失败。

我有IIS 7.5PowerShell 4

有没有人有一个想法,为什么这会导入在脚本中失败,但不是在命令行,以及如何解决它?

最后有一个问题,可能是巧克力?,将$env:PSModulePath截断为第一个条目,这就是为什么如果我键入脚本而不是脚本中脚本正在工作的原因。

我发现它在,我是运行脚本登录$env:PSModulePath在不同的点。

我工作围绕它通过$env:PSModulePath重新排序项。

看一看@理查德的回答其他一些很好的建议。

对于服务器,您需要安装角色Management ToolsWeb Server (IIS)下才能使用WebAdministration模块。要查看您是否有可用的模块,请使用Get-Module -ListAvailable

对于Windows 710您需要安装在Internet Information Services >>Web Management Tools功能IIS Management Scripts and tools

您可以尝试手动查找WebAdministration .psd1文件,然后导入它。使用$env:psmodulepath帮助寻找您的模块都保存然后运行:

Import-Module -Name 'C:\Windows\System32\WindowsPowerShell\v1.0\Modules\WebAdministration\WebAdministration.psd1' 

如果Server 2008你可以尝试以下方法,但是这可能不是2012年的工作和向上:

Add-PSSnapin WebAdministration 

注意您需要以管理员权限运行脚本以便能够使用Import-ModuleAdd-PSSnapin加载WebAdministration模块。

也检查你有PowerShell的执行策略设置为Unrestricted

Set-ExecutionPolicy unrestricted 

你可能希望看到这个Question

+0

感谢您的回复@Richard。不幸的是,当我列出可用模块时,我安装了Web管理工具并且出现了Web管理。我甚至可以从外壳中使用它。正当我运行脚本时,它不能被导入。任何想法呢? – Klee

+0

@Klee我用一些你可以尝试的东西更新了我的问题。 – Richard

+0

谢谢。第一个答案可能会起作用。另外两个我已经尝试过了。最后有一个问题,可能是巧克力?,它将截断$ env:PSModulePath到第一个条目中,这就是为什么脚本在我键入时运行,但不是在脚本中。我通过重新排序$ env中的条目解决了这个问题:PSModulePath感谢您的帮助。 – Klee