0

我正在运行 Win7 企业版。

我的目标是将 webadministration Powershell 模块与 Powershell 2.0 和 PowerGUI 一起使用。

该模块工作正常,但下次启动 PowerGUI 时出现错误。

以下是重现问题的步骤:

1) 打开 PowerGUI 3.1.0.2058。

2) 为 IIS 安装“webadministration”模块。

我可以使用 Import-Module cmdlet 或 PowerGUI 中的“文件 > Powershell 库”菜单项来执行此操作。

没关系。无论哪种方式,我都会得到相同的结果。

3) 网络管理模块按预期工作。

4) 退出 PowerGUI。

5) 打开 PowerGUI。

我收到一长串错误消息,这些消息似乎表明 webadministration 导致名称与自身发生冲突。

例子:

Import-Module :术语“Microsoft.IIS.PowerShell.Provider\Start-WebCommitDelay”解析为不明确的 cmdlet 名称。可能的匹配项包括:Microsoft.IIS.PowerShell.Provider\Start-WebCommitDelay Microsoft.IIS.PowerShell.Provider\Start-WebCommitDelay。在 line:1 char:288 + @('C:\Windows\system32\WindowsPowerShell\v1.0\Modules\webadministration\Microsoft.IIS.PowerShell.Provider.dll','C:\Windows\system32\WindowsPowerShell\v1 .0\Modules\webadministration\webadm inistration.psd1') | Where-Object { @(Get-Module | %{$ .Path} ) -notcontains $} | %{ Import-Module <<<< $_ } + CategoryInfo : ObjectNotFound: (Microsoft.IIS.P...-WebCommitDelay:String) [Import-Module], ParentContainsErrorRecordException + FullyQualifiedErrorId : CmdletNameAmbiguous,Microsoft.PowerShell.Commands.ImportModuleCommand

如果我在退出 PowerGUI 之前使用 Remove-Module 卸载 webadministration,下次启动 PowerGUI 时不会收到错误消息。

有没有规定必须在退出 PowerGUI 之前卸载模块?

我已经用微软的 ISE 尝试了相同的步骤(不要使用 Remove-Module),我没有任何问题。

PowerGUI 在哪里记住导入?我认为 Import-Module 仅适用于每个 Powershell 会话。

请赐教。

谢谢!

亚当·莱弗特 http://www.leffert.com

4

2 回答 2

0

两个配置文件都是空的。

我按照您的描述设置了调试选项。

如果我只使用“File > Powershell Libraries”菜单而不使用命令行导入模块,PowerGui 仍然无法与 webadministration 模块正常工作。

脚步:

1) 打开 PowerGui (PG)。

2) 检查 PS Libraries 对话框中的“webadministration 1.0.0”模块。

单击确定关闭对话框。

webadministration 模块已加载并工作。

3)退出PG。

4)再次打开PG。

一切看起来都很好(但事实并非如此)。

5)退出PG。

6)再次打开PG。

PG 导入模块失败并抛出错误。

如果您查看第 4 步和第 5 步之间的“文件 > Powershell 库”对话框,则此失败是有道理的。

执行此操作时,您会看到虽然您只检查了“webadministration”模块,但当您查看第 4 步和第 5 步之间的此对话框时,您会看到此模块和

“Microsoft.IIS.Powershell.Provider”模块都被选中。

要解决此问题,您可以在步骤 2 中检查“Microsoft.IIS.Powershell.Provider”而不是“webadministration”。

如果你这样做,PG 就可以正常工作。

所以感谢你让我走上正确的道路。

我有点好奇为什么“webadministration”不起作用,但我当然可以使用正常工作的模块。

于 2012-02-03T19:26:13.933 回答
0

需要检查的几件事:

PowerGUI 文件菜单中的配置文件脚本、当前用户和所有用户。

转到文件/PowerShell 库并确保它没有在那里签入。

同样在工具/选项/调试选项下选择重置 PowerShell 运行空间并取消选中加载配置文件。

于 2012-02-03T08:53:08.150 回答