以下vbscript在XP计算机上运行良好,但在Windows 7计算机上无效。
Set objIISRoot = getObject("IIS://localhost/W3SVC/1/Root")
mstrIISRootPath = objIISRoot.Path
' yadda yadda yadda...more stuff goes on..
Set objIISRoot = nothing
“objIISRoot”为空,因此引用objIISRoot.Path
会引发错误。如何在Windows 7上的IIS中使用默认Web?
答案 0 :(得分:4)
Windows7删除了基于WMI的管理编程接口,允许您执行getObject("iis://localhost...")
你有几个选择:
function RunAppCmd(command, deleteOutput) {
deleteOutput = deleteOutput || false;
LogMessage("RunAppCmd("+command+") ENTER");
var shell = new ActiveXObject("WScript.Shell");
var fso = new ActiveXObject("Scripting.FileSystemObject");
var tmpdir = fso.GetSpecialFolder(SpecialFolders.TemporaryFolder);
var tmpFileName = fso.BuildPath(tmpdir, fso.GetTempName());
var windir = fso.GetSpecialFolder(SpecialFolders.WindowsFolder);
var appcmd = fso.BuildPath(windir,"system32\\inetsrv\\appcmd.exe") + " " + command;
LogMessage("shell.Run("+appcmd+")");
// use cmd.exe to redirect the output
var rc = shell.Run("%comspec% /c " + appcmd + "> " + tmpFileName, WindowStyle.Hidden, true);
LogMessage("shell.Run rc = " + rc);
if (deleteOutput) {
fso.DeleteFile(tmpFileName);
}
return {
rc : rc,
outputfile : (deleteOutput) ? null : tmpFileName
};
}
我猜VBScript非常相似。
Start...Run...optionalfeatures.exe
访问它,然后打开WMI内容。
执行此操作后,您的旧WMI脚本将运行。