Скрипт Powershell возвращает исключение при использовании ADSI - PullRequest
3 голосов
/ 21 марта 2011

Я получаю исключения при выполнении сценария оболочки Power (v1.0) в Windows Server 2008 (32-разрядная версия).

Он использует ADSI для поиска в виртуальном каталоге перед его удалением.

Я получаю следующее исключение:

Exception calling "Find" with "2" argument(s): "Exception from HRESULT: 0x80005008"
At line:1 char:29
+ $iisMgr.psbase.children.find <<<< ("MyVirtualDir", $iisMgr.psbase.SchemaClassName)
+ CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException

Это код:

$vDirPath = "IIS://localhost/W3SVC/1/Root"
$iisMgr = [adsi]$vDirPath
$iisMgr.psbase.children.find("MyVirtualDir", $iisMgr.psbase.SchemaClassName)

(редактировать): из нескольких блогов я прочитал, что для получения роли службы совместимости управления IIS6 необходимо получитьпровайдер ADSI установлен, и у меня уже есть его, все еще с этим исключением ...

Ответы [ 2 ]

0 голосов
/ 31 марта 2011

Только некоторые идеи:

  • Вы проходите аутентификацию при взаимодействии с ADSI?
  • Я полагаю, что вы не используете Глобальный каталог в соответствии с вашим примером $ vDirPath.В любом случае загляните на См. Как изменить атрибуты, которые реплицируются в глобальный каталог
  • Попробуйте запустить сеанс Powershell с повышенными правами пользователя (щелкните правой кнопкой мыши Запуск от имени администратора)
0 голосов
/ 23 марта 2011

Вы пробуете только с одним параметром?

$iisMgr.psbase.children.find("MyVirtualDir")

Я не знаю там, но у меня есть такая ошибка COM, когда я вызываю метод с неправильным числом аргументов.

JP

...