3

在 Windows Server 2008(32 位)上执行 Power shell 脚本 (v1.0) 时出现异常。

它使用 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 提供程序,并且我已经启用了它,仍然有这个异常......

4

2 回答 2

0

你只尝试一个参数吗?

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

我不知道那里,但是当我调用具有错误数量的参数的方法时,我遇到了这种 COM 错误。

J.P

于 2011-03-23T20:53:38.643 回答
0

只是一些想法:

  • 进行 ADSI 交互时是否进行身份验证?
  • 我猜您没有按照 $vDirPath 的示例使用全局目录。无论如何,请看一下如何修改复制到全局目录的属性
  • 尝试使用提升的用户权限运行您的 Powershell 会话(右键单击以管理员身份运行)
于 2011-03-30T21:32:45.413 回答