vbscript sms按查询ID查询

时间:2014-12-23 16:22:43

标签: sql vbscript sms configurationmanager sccm

我有这个代码并且它不起作用,给我一个错误"在调用Sub"时不能使用括号。在我运行RunQuery(SCCMConnectionString,queryId)

的行上
Sub RunQuery(connection, queryId)
    Dim query
    Dim queryResults
    Dim queryResult 


    ' Get query.
    Set query=connection.Get("SMS_Query.QueryID='" & queryId  & "'" )

    If err.number<>0 Then
        WScript.echo "Couldn't get Queries"
        Exit Sub
    End If

    ' Run query.
    WScript.echo query.Name
    WScript.echo "----------------------------------"

    Set queryResults=connection.ExecQuery(query.Expression)
    For Each queryResult In queryResults
        wscript.echo "     " & queryResult.Name
    Next
    If queryResults.Count=0 Then
        WScript.echo "      no query results"
    End If
End Sub

SCCMConnectionString = chr(34) & "Server=OAK-PRD-SCC01;Database=CM_TIM;trusted_connection=True" & chr(34)
queryID = "SMS024"
RunQuery (SCCMConnectionString, queryId)

2 个答案:

答案 0 :(得分:1)

正如错误消息所示,当您在VBScript中调用 sub 时,不能使用括号。

试试这个。它应该工作。

 RunQuery SCCMConnectionString, queryId

答案 1 :(得分:1)

VBScript中SubFunction之间的主要区别在于函数返回值而子函数不返回。调用函数并使用其返回值时,允许/需要括号。在以正常方式调用sub时,根本不允许它们。

这里是更正后的行(#30):

RunQuery SCCMConnectionString, queryId

这是一篇更详细的MS文档:VBScript Procedures

奇怪的是,如果使用Call命令调用sub,则可以使用括号。

Call RunQuery(SCCMConnectionString, queryId)