IIS 6和更高版本附带了一个名为ADSUTIL.VBS的实用程序脚本:
Adsutil.vbs是一个IIS管理实用程序,它使用带有Active服务接口(ADSI)的(VBScript)来操作IIS配置。此脚本应使用CScript运行,该脚本与一起安装。
换句话说,该工具允许您从命令行以编程方式更改IIS代谢酶设置。
我想从一个InstallShield项目中调用这个工具,以便对IIS进行一些配置更改。我很好奇,是重新分发脚本是合法的(源代码中没有合法的措辞),还是简单地通过以下方式启动命令:
CSCRIPT %SYSTEMDRIVE%\Inetpub\AdminScripts\adsutil.vbs并希望脚本存在于该位置的磁盘上。
所以我的问题是--即使机器上的其他网站(inetpub根)位于非系统驱动器上,它是否总是存在于上面的路径中?似乎所有提到ADSUTIL工具的MSDN和其他Microsoft KB文章都是通过使用上面的%SYSTEMDRIVE% path来实现的。
我认为至少是通过在另一个试图解决这个问题的尝试项目中同时分发cscript.exe和adsutil.vbs来实现的。
也许有一个注册表项或其他方法来获取Inetpub\AdminScripts路径的位置?
也许我应该写一个更改值的C#应用程序或我自己的VBScript,然后用我自己的小应用发布?
发布于 2009-08-13 14:54:22
我在JShumaker的回答工作是为了解决这个问题。最好的路径似乎是运行批处理脚本所调用的以下InstallScript函数:
prototype SetIISValues();
function SetIISValues()
string szProgram, szCmd;
begin
szProgram = TARGETDIR + "SetIISValues.bat";
szCmd = "";
LaunchAppAndWait (szProgram, szCmd, LAAW_OPTION_WAIT);
end; 批处理脚本调用如下:
@echo off
cscript.exe SetIISValues.vbsVBScript看起来是这样的:
Option Explicit
Dim IIsObject
Set IIsObject = GetObject("IIS://localhost/w3svc/1")
IIsObject.Put "Name", "Value"
IIsObject.Setinfo这样做可以减轻将ADSUTIL.VBS作为安装的一部分的需要--如果您不需要使用它,那么它的(相对)路径就无关紧要了。
https://stackoverflow.com/questions/1262921
复制相似问题