Что вызывает конфликт командлетов модуля webadministration с их собственными именами? - PullRequest
0 голосов
/ 02 февраля 2012

Я использую Win7 Enterprise.

Моя цель - использовать модуль Powershell для веб-администрирования вместе с Powershell 2.0 и PowerGUI.

Модуль работает правильно, но я получаю ошибки при следующем запуске PowerGUI.

Вот шаги по воспроизведению проблемы:

1) Откройте PowerGUI 3.1.0.2058.

2) Установите модуль «webadministration» для IIS.

Я могу сделать это с помощью командлета Import-Module или пункта меню «Файл> Библиотеки Powershell» в PowerGUI.

Это не имеет значения. В любом случае я получаю одинаковые результаты.

3) Модуль веб-администрирования работает как положено.

4) Выйти из PowerGUI.

5) Откройте PowerGUI.

Я получаю длинный список сообщений об ошибках, которые, кажется, указывают на то, что веб-администрирование вызывает конфликт имен с самим собой.

Пример: * * тысяча двадцать-пять

Import-Module. Термин «Microsoft.IIS.PowerShell.Provider \ Start-WebCommitDelay» преобразован в неоднозначное имя командлета. Возможные совпадения: Microsoft.IIS.PowerShell.Provider \ St art-WebCommitDelay Microsoft.IIS.PowerShell.Provider \ Start-WebCommitDelay. В строке: 1 символ: 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}) -не содержит $ } | % {Import-Module <<<< $ _} + CategoryInfo: ObjectNotFound: (Microsoft.IIS.P ...- WebCommitDelay: String) [Import-Module], ParentContainsErrorRecordException + FullyQualifiedErrorId: CmdletNameAmbiguous, Microsoft.PowerShell.Commands.ImportModuleCommand </p>

Если я использую Remove-Module для удаления веб-администрирования перед выходом из PowerGUI, я не получу сообщения об ошибке при следующем запуске PowerGUI.

Есть ли правило, что модули должны быть удалены перед выходом из PowerGUI?

Я попробовал тот же набор шагов (не используйте Remove-Module) с ISE от Microsoft, и у меня нет проблем там.

Где PowerGUI запоминает импорт? Я думал, что Импорт-Модуль был только за сеанс Powershell.

Пожалуйста, просветите меня.

Спасибо!

Адам Лефферт http://www.leffert.com

Ответы [ 2 ]

0 голосов
/ 03 февраля 2012

Оба файла профиля пусты.

Я установил параметры отладки, как вы описали.

Если я использую только меню «Файл> Библиотеки Powershell» и не использую командную строку для импорта модулей, PowerGui по-прежнему не работает правильно с модулем веб-администрирования.

Шаги:

1) Откройте PowerGui (PG).

2) Проверьте модуль «webadministration 1.0.0» в диалоговом окне «Библиотеки PS».

Нажмите кнопку ОК, чтобы закрыть диалоговое окно.

Модуль веб-администрирования загружен и работает.

3) Выйти из PG.

4) Снова откройте PG.

Все выглядит хорошо (но это не так).

5) Выйти из PG.

6) Снова откройте PG.

PG не может импортировать модуль и выдает ошибки.

Этот сбой имеет некоторый смысл, если вы заглянете в диалог «Файл> Библиотеки Powershell» между шагами 4 и 5.

Когда вы сделаете это, вы увидите, что, хотя вы проверили только модуль "веб-администрирования", когда вы посмотрите на это диалоговое окно между шагами 4 и 5, вы увидите, что этот модуль и

Модуль "Microsoft.IIS.Powershell.Provider" проверен.

Чтобы обойти эту проблему, вы можете выбрать «Microsoft.IIS.Powershell.Provider» вместо «webadministration» на шаге 2.

Если вы сделаете это, PG работает правильно.

Так что спасибо, что поставили меня на правильный путь.

Мне несколько любопытно, почему «веб-администрирование» не работает, но, конечно, я могу просто использовать модуль, который работает правильно.

0 голосов
/ 03 февраля 2012

Несколько вещей для проверки:

Скрипты профиля, текущего и всех пользователей из меню файлов PowerGUI.

Перейдите в библиотеки File / PowerShell и убедитесь, что они там не зарегистрированы.

Также в разделе «Инструменты / Параметры / Параметры отладки» выберите «Сбросить пространство выполнения PowerShell» и снимите флажки с профилями загрузки.

...