Есть такой код на VBScript
Set WMIService = GetObject("winmgmts:\\localhost\root\cimv2")
Set WbemObjectSet = WMIService.ExecQuery("SELECT SID FROM Win32_Account Where SIDType=1", "WQL", 32)
For Each WbemObject in WbemObjectSet
WScript.Echo(WbemObject.Name)
Next
Как его перенести на JScript?
Проблема с циклом For Each
.
Если я пишу так
var WMIService = GetObject("winmgmts:\\\\localhost\\root\\cimv2")
var WbemObjectSet = WMIService.ExecQuery('SELECT SID FROM Win32_Account Where SIDType=1', 'WQL', 32);
for (var WbemObject in WbemObjectSet) {
WScript.Echo(WbemObject.SID);
}
цикл не выполняется.
MSDN говорит, что у объекта WbemObjectSet есть свойство Count
и методы Item
, ItemIndex
. Однако при обращении к ним я получаю ошибки
WScript.Echo(WbemObjectSet.Count); // Неопознанная ошибка
WScript.Echo(WbemObjectSet.ItemIndex(0).SID); // Invalid operation
Объект WbemObjectSet
поддерживает интерфейс IEnumVariant
с методом Next
. Однако второй и третий параметр этого метода передаются по ссылке. Можно ли его вызвать из JScript?
Update
Предложенный в ответе метод работает только начиная с Windows Vista. Тогда как в Windows XP у объекта SWbemObjectSet
нет метода ItemIndex()
, а метод Item()
в качестве аргумента принимает не индекс, а path-строку
Проблема решена. Я в метод WMIService.ExecQuery
третьим параметром передавал флаг wbemFlagForwardOnly (32 (0x20))
, что отключало навигацию по коллекции по произвольным индексам.
Если же передать флаг wbemFlagBidirectional (0 (0x0))
(или не передавать третий параметр вообще), то начинают работать Count
и ItemIndex()
var WMIService = GetObject("winmgmts:\\\\localhost\\root\\cimv2");
var WbemObjectSet = WMIService.ExecQuery('SELECT SID FROM Win32_Account Where SIDType=1', 'WQL');
for (var i = 0; i < WbemObjectSet.Count; i++) {
WScript.Echo(WbemObjectSet.ItemIndex(i).SID);
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Нужно вывести на сайт 10 последних транзакций на кошелёкЗначения берутся отсюда: https://api
Добрый день адепты программирования, начинающему верстальщику нужна ваша помощь!!!
Подскажите пожалуйста что движет этой анимацией слоев? В отладчике не какие значения не меняются + js не используетсяСледовательно вопрос...
На сайт необходимо сделать загрузку mp3 файлов, они автоматически должны записываться в базу по id3 тегам, желательно получать их в браузере...