IIS 6 及更早版本附带一个名为 ADSUTIL.VBS 的实用程序脚本:



换句话说,此工具可让您从命令行以编程方式更改 IIS metabase 设置。

我想从 InstallShield 项目调用此工具,以便对 IIS 进行一些配置更改。我很好奇重新分发脚本是否合法(源代码中没有合法的措辞)或简单地通过以下方式启动命令:

CSCRIPT %SYSTEMDRIVE%\Inetpub\AdminScripts\adsutil.vbs

并希望该脚本存在于该位置的磁盘上。

所以我的问题是 - 它是否总是存在于上面的路径中,即使机器上的其他一些网站(inetpub 根)位于非系统驱动器上?似乎所有引用 ADSUTIL 工具的 MSDN 和其他 Microsoft KB 文章都是通过使用上面的 %SYSTEMDRIVE% 路径来实现的。

通过将 cscript.exe 和 adsutil.vbs 与他们的 InstallShield 项目一起分发,我至少看到了 one other attempt to deal with this

也许有注册表项或其他方法可以获取 Inetpub\AdminScripts 路径的位置?

也许我应该写一个 C# application that changes the valuemy own VBScript 并用我自己的小应用程序分发?

最佳答案

我最近遇到了类似的问题,并决定重新编写一小部分 vbscript,以便在 msi 安装程序的自定义操作中使用。弄清楚 adsutil.vbs 如何做事的核心可能需要一点时间,但它写得非常好。例如,我需要将应用程序池切换到经典模式而不是集成模式,并在 64 位窗口上将其显式设置为以 32 位模式运行,这导致了以下结果:

选项显式

暗淡的 IIs 对象
Set IIsObject = GetObject("IIS://LocalHost/W3SVC/AppPools/TestPool")
IIsObject.Put "ManagedPipelineMode", 1
IIsObject.Setinfo
IIsObject.Put "Enable32BitAppOnWin64", CBool​​("True")
IIsObject.Setinfo

关于iis - 如何找到C :\Inetpub\AdminScripts\ADSUTIL. VBS的相对路径?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1262921/

10-09 18:18