14

我即将进入一个PowerShell用于编写构建脚本的项目。该构建使用该WebAdministration模块来管理本地 IIS 实例。当我运行构建脚本时,尝试导入时会引发以下错误WebAdministration

错误:2016 年 6 月 29 日 17:28:35:在 C:\dev\src\nib-ravenb\build\ConfigureIis.ps1:10 char:1 + Import-Module WebAdministration + ~~~~~~~~~ ~~~~~~~~~~~~~~~~ ~~~~~~~ [<<==>>] 异常:未加载指定的模块“WebAdministration”,因为未找到有效的模块文件任何模块目录。错误:1

当我Import-Module WebAdministrationPowerShell命令行运行时,模块被导入并且我可以使用它的功能。随后运行构建脚本仍然失败。

我有IIS 7.5PowerShell 4

有谁知道为什么此导入会在脚本中失败但在命令行中失败,以及如何修复它?

4

3 回答 3

19

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

因为您需要Windows 7在>> 下安装该功能。10IIS Management Scripts and toolsInternet Information ServicesWeb Management Tools

您可以尝试手动定位WebAdministration.psd1 文件,然后将其导入。用于$env:psmodulepath帮助定位模块的存储位置,然后运行:

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

如果Server 2008您可以尝试以下方法,但这可能不适用于 2012 年及更高版本:

Add-PSSnapin WebAdministration

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

还要检查您PowerShell的执行策略是否设置为Unrestricted

Set-ExecutionPolicy unrestricted

您可能希望看到这个问题

于 2016-06-29T07:47:06.617 回答
5

我有同样的情况,我已经修复它在 W2016 服务器上安装 Windows 功能 Web 脚本工具:

Add-WindowsFeature Web-Scripting-Tools
于 2021-09-10T19:29:16.197 回答
4

最后有一个问题,可能是巧克力?,被截断$env:PSModulePath到第一个条目,这就是为什么如果我输入脚本但不是在脚本中,脚本可以工作。

$env:PSModulePath我通过在我正在运行的脚本中的不同点登录来找到它。

我通过重新排序中的条目来解决它$env:PSModulePath

查看@Richard 的回答,了解其他一些好的建议。

于 2016-06-30T22:53:01.213 回答