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 value 或 my 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/