Member 13313929 Ответов: 1

Как преобразовать jscript в VB.NET


Мы используем Kaspersky Security Center для управления AV на всех компьютерах нашего домена. Я искал внешний способ переместить компьютеры в разные группы и изменить комментарии, которые мы даем им в Центре безопасности Касперского. Касперский дал мне несколько ссылок, чтобы проверить, но я понятия не имею, с чего начать. Я искал, чтобы закодировать это в VB.Сетевое Приложение Windows Form.

Ссылка 1: https://support.kaspersky.com/9291
Link2: https://support.kaspersky.com/2810

Что я уже пробовал:

ниже приведен JScript, с которым я хочу работать vb.net:

function AcquireAdServerProxy()
{    
    var oSrvConnectionProps = new ActiveXObject("klakaut.KlAkParams");
    oSrvConnectionProps.Add("Address", "localhost:13291");
    oSrvConnectionProps.Add("UseSSL", true);

    var oAdmServer = new ActiveXObject("klakaut.KlAkProxy");
    oAdmServer.Connect(oSrvConnectionProps);
    return oAdmServer;
};

function Update_Host_Comment(hostid,comment)
{
    var oHosts = new ActiveXObject("klakaut.KlAkHosts");
    oHosts.AdmServer = AcquireAdServerProxy();
    var strHostName = hostid;    //name of the host to change attributes
   //Fill container with attributes to change
    var oProps = new ActiveXObject("klakaut.KlAkParams");
    oProps.Item("KLHST_WKS_COMMENT") = comment;    //Change Comment
    oHosts.UpdateHost(strHostName, oProps);
};

function Update_Host_Group(hostid,groupid)
{
    var oHosts = new ActiveXObject("klakaut.KlAkHosts");
    oHosts.AdmServer = AcquireAdServerProxy();
    var strHostName = hostid;    //name of the host to change attributes
    //Fill container with attributes to change
    var oProps = new ActiveXObject("klakaut.KlAkParams");
    oProps.Item("KLHST_WKS_GROUPID") = groupid;    //Change group
    oHosts.UpdateHost(strHostName, oProps);
};

//Calling Functions
Update_Host_Comment("SomeHostID","Some Comment Text");
Update_Host_Group("SomeHostID","Some GroupID");

1 Ответов

Рейтинг:
2

Jaroslav Mitrovic

Привет.

Я просто попытался сделать синтаксическое преобразование "из моей памяти"... :)

В VB вы не заканчиваете команду точкой с запятой, а просто новой строкой (VbCrLf).
В VB 'var' - это 'Dim', и его синтаксис...
А функции должны что-то возвращать, вот почему вы задаете в FunctionHeader не только параметры, но и возвращаемый тип (TypeOf BlaBliBlup)
-> As SomethingToReturn <- если вы возвращаете Printf/String, вы должны использовать 'As String', чтобы установить тип ouf возвращаемого значения.

Как использовать ActiveX, я забыл, но в основном вы делаете ссылки, а затем сохраняете в переменной и потребляете экземпляр ActiveX.
Выполняется только на небольшое число экземпляров элементов управления ActiveX(ы).
Большая часть производительности и ошибок с ActiveX происходит от создания всегда нового экземпляра ActieX внутри функций/подсистем, и тогда вы должны справиться с этим...
Пример: Если вы используете только один экземпляр PDF-ActiveX, вы не потребляете слишком много памяти, Если используете один и тот же документ!

Sub в VB-это "функции без возвращаемого типа (Void)".


Function AcquireAdServerProxy() As SomethingToReturn
    
    Dim oSrvConnectionProps = New ActiveXObject("klakaut.KlAkParams")
    oSrvConnectionProps.Add("Address", "localhost:13291")
    oSrvConnectionProps.Add("UseSSL", true)

    Dim oAdmServer = new ActiveXObject("klakaut.KlAkProxy")
    oAdmServer.Connect(oSrvConnectionProps)
    Return oAdmServer
End Function

Function Update_Host_Comment(hostid As Something,comment As Something) As SomethingToReturn

    Dim oHosts = new ActiveXObject("klakaut.KlAkHosts")
    oHosts.AdmServer = AcquireAdServerProxy()
    Dim strHostName = hostid     'name of the host to change attributes
    'Fill container with attributes to change
    Dim oProps = new ActiveXObject("klakaut.KlAkParams")
    oProps.Item("KLHST_WKS_COMMENT") = comment   'Change Comment
    oHosts.UpdateHost(strHostName, oProps)
    
    ' Nothing to return ???
End Function

Function Update_Host_Group(hostid,groupid)

    Dim oHosts = New ActiveXObject("klakaut.KlAkHosts")
    oHosts.AdmServer = AcquireAdServerProxy()
    var strHostName = hostid     'name of the host to change attributes
    'Fill container with attributes to change
    var oProps = New ActiveXObject("klakaut.KlAkParams")
    oProps.Item("KLHST_WKS_GROUPID") = groupid     'Change group
    oHosts.UpdateHost(strHostName, oProps)
    
    ' Nothing to return ???
End Function

//Calling Functions
Update_Host_Comment("SomeHostID","Some Comment Text")
Update_Host_Group("SomeHostID","Some GroupID")



Вот еще одна версия "Update_Host_Comment".
Изменен на Sub и определил типы параметров как Integer (hostid) и String (comment).

Sub Update_Host_Comment(hostid As Integer, comment As String)
    Dim oHosts = new ActiveXObject("klakaut.KlAkHosts")
    oHosts.AdmServer = AcquireAdServerProxy()
    Dim strHostName = hostid     'name of the host to change attributes
    'Fill container with attributes to change
    Dim oProps = new ActiveXObject("klakaut.KlAkParams")
    oProps.Item("KLHST_WKS_COMMENT") = comment   'Change Comment
    oHosts.UpdateHost(strHostName, oProps)
End Sub


Может быть, это поможет.

Это не рабочий код.

Просто чтобы получить вступление на вашем примере, а я не гуру VB.

c.u. из солнечного Гамбурга