Powershell 导入模块WebAdministration不会从脚本加载,而是从命令行加载
我将进入一个使用Powershell 导入模块WebAdministration不会从脚本加载,而是从命令行加载,powershell,iis-7.5,web-administration,Powershell,Iis 7.5,Web Administration,我将进入一个使用PowerShell编写构建脚本的项目。构建使用WebAdministration模块来管理本地IIS实例。当我运行构建脚本时,尝试导入WebAdministration时会引发以下错误 错误:06/29/2016 17:28:35:At C:\dev\src\nib ravendb\build\ConfigureIis.ps1:10字符:1+ 导入模块WebAdministration+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ []异常:指
PowerShell
编写构建脚本的项目。构建使用WebAdministration
模块来管理本地IIS实例。当我运行构建脚本时,尝试导入WebAdministration
时会引发以下错误
错误:06/29/2016 17:28:35:At
C:\dev\src\nib ravendb\build\ConfigureIis.ps1:10字符:1+
导入模块WebAdministration+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[]异常:指定的模块“WebAdministration”不可用
已加载,因为在任何模块中都找不到有效的模块文件
目录错误:1
然而,当我在PowerShell
命令行上运行Import Module WebAdministration
时,模块被导入,我可以使用其中的功能。随后运行构建脚本仍然失败
我有iis7.5
和PowerShell 4
是否有人知道为什么此导入会在脚本中失败,但在命令行中失败,以及如何修复它?对于服务器,您需要在
Web服务器(IIS)
下安装角色管理工具
以使用WebAdministration
模块。要查看模块是否可用,请使用Get module-list available
对于Windows 7
到10
,您需要在Internet信息服务>Web管理工具下安装功能IIS管理脚本和工具
您可以尝试手动定位WebAdministration
.psd1文件,然后导入它。使用$env:psmodulepath
帮助定位模块的存储位置,然后运行:
Import-Module -Name 'C:\Windows\System32\WindowsPowerShell\v1.0\Modules\WebAdministration\WebAdministration.psd1'
如果Server 2008
,您可以尝试以下操作,但这在2012年及以后的版本中可能不起作用:
Add-PSSnapin WebAdministration
注意您需要运行具有管理员权限的脚本,才能使用导入模块
或添加PSSnapin
加载网络管理
模块
还要检查您是否已将PowerShell
的执行策略设置为Unrestricted
:
Set-ExecutionPolicy unrestricted
你可能想看看这个 最后出现了一个问题,可能是巧克力?将$env:PSModulePath
截断到了第一个条目,这就是为什么如果我在脚本中键入而不是在脚本中键入脚本,那么脚本可以工作的原因
我通过在运行的脚本的不同点上记录$env:PSModulePath
找到了它
我通过对$env:PSModulePath
中的条目重新排序来解决这个问题
看看@Richard的答案,看看其他一些好的建议 谢谢你的回复@Richard。不幸的是,我已经安装了Web管理工具,当我列出可用的模块时,会出现WebAdministration。我甚至可以用它的外壳。就在我运行脚本时,它无法导入。有什么想法吗?@Klee我已经更新了我的问题,你可以试试。谢谢。第一个答案可能会奏效。另外两个我已经试过了。最后出现了一个问题,可能与Chocolate?有关,那就是将$env:PSModulePath截断到第一个条目,这就是为什么如果我在脚本中键入它,而不是在脚本中键入它,那么脚本可以工作的原因。我通过对$env:PSModulePath中的条目重新排序来解决这个问题,感谢您的帮助。