将jscript转换为vb.net

时间:2018-06-02 01:54:03

标签: vb.net api jscript activexobject kaspersky

我们使用卡巴斯基安全中心管理所有域计算机上的AV。我正在寻找一种外部方式将计算机移动到不同的组并更改我们在卡巴斯基安全中心提供的评论。卡巴斯基给了我一些退房的链接,但我不知道从哪里开始。我希望在VB.Net Windows窗体应用程序中对此进行编码。

我的问题是如何转换或使下面的jscript工作在VB.net Windows窗体中。我将要一个加载了Kaspersky主机ID,Comment和GroupID的sql表。每天一次,我想迭代通过该sql表,只更新需要对其评论或组进行更改的计算机。 (我已写过的sql部分)

以下是我的目标:

Dim reader3 As SqlDataReader
    Dim strconnection3 As String
    strconnection3 = data_source_all 'defined globally
    Dim SqlConnection3 As New SqlConnection(strconnection3)
    Dim cmd3 As New SqlCommand
    cmd3.CommandText = "SELECT kaspersky_hostid, kaspersky_comment, pc_info_comment, kaspersky_groupid FROM pc_info where (pc_status = 'active')"
    cmd3.CommandType = CommandType.Text
    cmd3.Connection = SqlConnection3
    SqlConnection3.Open()
    reader3 = cmd3.ExecuteReader()
    If reader3.HasRows Then
        While reader3.Read()
            If reader3(1).ToString = reader3(2).ToString Then
            Else
                Update_Host_Comment(reader3(0).ToString,reader3(2).ToString)
            End If
End While
        SqlConnection3.Close()
        SqlConnection3.Dispose()
        cmd3.Dispose()
    Else
    End If

Public Sub Update_Host_Comment(ByVal hostid As String, ByVal comment As String)

'Converted JScript

'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);

End Sub

Link1:https://support.kaspersky.com/9291 Link2:https://support.kaspersky.com/2810

下面是我想用vb.net运行的JScript:

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");

06/04/18编辑:以下是我尝试过的代码:

Public Function AcquireAdServerProxy()
    Try
        Dim oSrvConnectionProps = CreateObject("klakaut.KlAkParams")
        oSrvConnectionProps.Add("Address", "localhost:13291")
        oSrvConnectionProps.Add("UseSSL", True)

        Dim oAdmServer = CreateObject("klakaut.KlAkProxy")
        oAdmServer.Connect(oSrvConnectionProps)
        Return oAdmServer
    Catch ex As Exception
        MsgBox(ex.ToString)
        Return False
    End Try
End Function

Public Function Update_Host_Comment(ByVal hostid As String, ByVal comment As String) As Boolean
    Try
        Dim ohosts = CreateObject("klakaut.KlAkHosts")
        ohosts.AdmServer = AcquireAdServerProxy()
        Dim strHostName = hostid
        'Fill container with attributes to change
        Dim oProps = CreateObject("klakaut.KlAkParams")
        oProps.Item("KLHST_WKS_COMMENT") = comment
        ohosts.UpdateHost(strHostName, oProps)
        Return True
    Catch ex As Exception
        MsgBox(ex.ToString)
        Return False
    End Try
End Function

Public Function Update_Host_Group(ByVal hostid As String, ByVal groupid As Integer) As Boolean
    Try
        Dim ohosts = CreateObject("klakaut.KlAkHosts")
        ohosts.AdmServer = AcquireAdServerProxy()
        Dim strHostName = hostid
        'Fill container with attributes to change
        Dim oProps = CreateObject("klakaut.KlAkParams")
        oProps.Item("KLHST_WKS_GROUPID") = groupid
        ohosts.UpdateHost(strHostName, oProps)
        Return True
    Catch ex As Exception
        MsgBox(ex.ToString)
        Return False
    End Try
End Function

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Label4.Text = "Processing ..."
    Label4.Update()
    Try
        If TextBox1.Text <> Nothing Then
            If TextBox2.Text <> Nothing Then
                If Update_Host_Comment(TextBox1.Text, TextBox2.Text.ToUpper) Then
                    Label4.Text = "Comment Updated"
                    Label4.Update()
                Else
                    Label4.Text = "Comment Update Error"
                    Label4.Update()
                End If
            Else
            End If
            If TextBox3.Text <> Nothing And IsNumeric(TextBox3.Text) Then
                If Update_Host_Group(TextBox1.Text, TextBox3.Text) Then
                    Label4.Text = Label4.Text & " / Group Updated"
                    Label4.Update()
                Else
                    Label4.Text = Label4.Text & " / Group Update Error"
                    Label4.Update()
                End If
            Else
            End If
        End If
    Catch ex As Exception
        Label4.Text = "Error"
        Label4.Update()
    End Try
End Sub
End Class

这是我运行时遇到的错误:

System.Runtime.InteropServices.COMException(0xE0FF04FD):连接到http://localhost:13291时传输级别错误:无法解析Microsoft.VisualBasic.CompilerServices.LateBinding.InternalLateCall(Object o,Type objType,String name,对象[] args,String [] paramnames,Boolean [] CopyBack,Boolean IgnoreReturn)at Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateCall(Object Instance,Type Type,String MemberName,Object [] Arguments,String [] ArgumentNames,Type [ ]在kaspersky_api.Form1.AcquireAdServerProxy()

的TypeArguments,Boolean [] CopyBack,Boolean IgnoreReturn)

0 个答案:

没有答案