В Windows7 удален интерфейс административного программирования на основе WMI, который позволяет выполнять getObject("iis://localhost...")
у вас есть пара вариантов:
- Если вы собираете для IIS7, может быть проще вызвать Appcmd.exe из скрипта, а затем проанализировать вывод. Я нашел этот инструмент командной строки, чтобы быть более интуитивным и очень мощным. Это пример того, как это делается из Javascript:
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 будет очень похож.
- С другой стороны, если вы создаете эту штуку как для XP, так и для Win7, то вам придется остаться с именами COM. Чтобы разрешить это на Win7, вам нужно установить пакет управления IIS6. Получите доступ к нему через
Start...Run...optionalfeatures.exe
и затем включите WMI.
После этого ваш старый скрипт WMI запустится.