Import-Module WebAdministration不会从脚本加载,而是从命令行加载

Kle*_*lee 7 powershell iis-7.5 web-administration

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

错误:06/29/2016 17:28:35:在C:\ dev\src \nib-ravendb\build\ConfigureIis.ps1:10 char:1 + Import-Module WebAdministration + ~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~ [<< == >>]例外:未加载指定的模块"WebAdministration",因为没有有效的模块文件任何模块目录.错误:1

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

我有IIS 7.5PowerShell 4

有没有人知道为什么这个导入会在脚本中失败而在命令行失败,以及如何修复它?

Ric*_*ard 13

对于服务器需要安装的作用Management ToolsWeb Server (IIS)使用WebAdministration模块.要查看您是否有可用的模块Get-Module -ListAvailable.

为了Windows 710您需要安装该功能IIS Management Scripts and toolsInternet Information Services>> Web Management Tools.

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

Import-Module -Name 'C:\Windows\System32\WindowsPowerShell\v1.0\Modules\WebAdministration\WebAdministration.psd1' 
Run Code Online (Sandbox Code Playgroud)

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

Add-PSSnapin WebAdministration
Run Code Online (Sandbox Code Playgroud)

注意您需要运行具有管理员权限的脚本才能WebAdministration使用Import-Module或加载模块Add-PSSnapin.

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

Set-ExecutionPolicy unrestricted
Run Code Online (Sandbox Code Playgroud)

您可能希望看到此问题.


小智 8

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

Add-WindowsFeature Web-Scripting-Tools
Run Code Online (Sandbox Code Playgroud)

  • 这应该是公认的答案 (2认同)

Kle*_*lee 4

最后出现了一个问题,某个东西(可能是巧克力味的?)被截断$env:PSModulePath到第一个条目,这就是为什么如果我输入它但不在脚本中则脚本可以工作的原因。

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

我通过重新排序 中的条目来解决这个问题$env:PSModulePath

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