JS код - должен выдавать SID пользователя
Добрый день!
JS код (должен выдавать SID пользователя):
Код:
var name = '1';
var comp = '.';
var service = GetObject("winmgmts:\\.\root\CIMV2");
var item = '';
var items = service.ExecQuery("SELECT SID FROM Win32_UserAccount WHERE Name = '"+name+"'");
for (item in items)
{
WScript.Echo(item.name);
WScript.Echo("\n");
}
Выводит:
C:\Users\1\Dropbox\scripts\windows\my.js(4, 1) (null): 0x80041021
Ругается я так понимаю на это:
?
Цитата:
var service = GetObject("winmgmts:\\.\root\CIMV2");
|
Притом через vbs срабатывает все отлично, выдает sid.
Можеть где-то я ошибся тут?
|
1. JScript не VBScript, там свои принципы работы.
2. JScript не слишком приспособлен для работы с Wbem. Почему Вы остановили свой выбор именно на нём?
Код:
var sUserName = "1";
var sMachineName = ".";
var oSWbemServiceEx = GetObject("winmgmts:\\\\" + sMachineName + "\\root\\CimV2");
var oItem;
var сItems = new Enumerator(oSWbemServiceEx.ExecQuery("SELECT Name, SID FROM Win32_UserAccount WHERE Name = '" + sUserName + "'"));
for (; !сItems.atEnd(); сItems.moveNext())
{
oItem = сItems.item();
WScript.Echo(oItem.Name + " " + oItem.SID);
}
|
Спасибо! Код работает.
Скажем так. Его синтаксис мне знаком, в отличии от VBS. Можеть быть сейчас и написал на VBS, но уже поздно метаться, многое сделано.
|
Цитата:
Цитата RRRinat
Скажем так. Его синтаксис мне знаком, в отличии от VBS. Можеть быть сейчас и написал на VBS, но уже поздно метаться, многое сделано. »
|
Спасибо, ясно. Я сам такой. Худо-бедно могу в JScript ориентироваться, но как только в употребление идут сугубо языково-зависимые средства, например, «.prototype», мне сразу приходится идти в документацию.
RRRinat, возможно, в будущем Вам предстоит столкнуться ещё с таким, специфичным для JScript, способом: JScript: вызов методов WMI с выходными параметрами.
|
Время: 10:05.
© OSzone.net 2001-