我想在程序里开多个线程调用这个脚本(有反回值的,像调用函数那种)开TelNet服务,但是不知道怎么做,,高手请指点.另外把这段脚本用VC写更 好样就更方便了.不过好像要用到COM编程,这个一点不懂...希望多指点..

解决方案 »

  1.   

    on error resume next
    set outstreem=wscript.stdout
    if (lcase(right(wscript.fullname,11))="wscript.exe") then
       set objShell=wscript.createObject("wscript.shell")
       objShell.Run("cmd.exe /k cscript //nologo "&chr(34)&wscript.scriptfullname&chr(34))
       wscript.quit
    end if
    if wscript.arguments.count<5 then
       usage()
       wscript.echo "Not enough parameters."
       wscript.quit
    end ifipaddress=wscript.arguments(0)
    username=wscript.arguments(1)
    password=wscript.arguments(2)
    ntlm=wscript.arguments(3)
    port=wscript.arguments(4)
    if not isnumeric(ntlm) or ntlm<0 or ntlm>2 then
       usage()
       wscript.echo "The value of NTML is wrong."
       wscript.quit
    end if
    if not isnumeric(port) then
       usage()
       wscript.echo "The value of port is wrong."
       wscript.quit
    end ifusage()
    outstreem.write "Conneting "&ipaddress&"...."
    set objlocator=createobject("wbemscripting.swbemlocator")
    set objswbemservices=objlocator.connectserver(ipaddress,"root/default",username,password)
    showerror(err.number)outstreem.write "Setting NTLM="&ntlm&"...."
    set objinstance=objswbemservices.get("stdregprov")
    set objmethod=objinstance.methods_("SetDWORDvalue")
    set objinparam=objmethod.inparameters.spawninstance_()
    objinparam.hdefkey=&h80000002
    objinparam.ssubkeyname="SOFTWARE\Microsoft\TelnetServer\1.0"
    objinparam.svaluename="NTLM"
    objinparam.uvalue=ntlm
    set objoutparam=objinstance.execmethod_("SetDWORDvalue",objinparam)
    showerror(objoutparam.returnvalue)outstreem.write "Setting port="&port&"...."
    objinparam.svaluename="TelnetPort"
    objinparam.uvalue=port
    set objoutparam=objinstance.execmethod_("SetDWORDvalue",objinparam)
    showerror(objoutparam.returnvalue)outstreem.write "Querying state of telnet server...."
    set objswbemservices=objlocator.connectserver(ipaddress,"root\cimv2",username,password)
    set colinstances=objswbemservices.execquery("select * from win32_service where name='tlntsvr'")
    showerror(err.number)
    for each objinstance in colinstances
    if objinstance.startmode="Disabled" then
       outstreem.write "Telnet server has been disabled. Now changeing start mode to manual...."
       set objmethod=objinstance.methods_("changestartmode")
       set objinparam=objmethod.inparameters.spawninstance_()
       objinparam.startmode="Manual"
       set objoutparam=objinstance.execmethod_("changestartmode",objinparam)
       showerror(objoutparam.returnvalue)
    end if
    outstreem.write "Changeing state...."
    if objinstance.started=true then
       intstatus=objinstance.stopservice()
       showerror(intstatus)
       wscript.echo "Target telnet server has been STOP Successfully."
    else
       intstatus=objinstance.startservice()
       showerror(intstatus)
       wscript.echo "Target telnet server has been START Successfully!"
       wscript.echo "Now, you can try: telnet "&ipaddress&" "&port&", to get a shell."
    end if
    nextfunction showerror(errornumber)
    if errornumber<>0 then
       wscript.echo "Error!"
       wscript.quit
    else
       wscript.echo "OK!"
    end if
    end functionfunction usage()
    wscript.echo string(79,"*")
    wscript.echo "RTCS v1.10"
    wscript.echo "Remote Telnet Configure Script, by zzzEVAzzz"
    wscript.echo "Welcome to visite www.isgrey.com"
    wscript.echo "Usage:"
    wscript.echo "cscript "&wscript.scriptfullname&" targetIP username password NTLMAuthor telnetport"
    wscript.echo "It will auto change state of target telnet server."
    wscript.echo string(79,"*")&vbcrlf
    end function
      

  2.   

    CoInitialize
    CoInitializeSecurity
    IWbemLocator *pIWbemLocator= NULL;
    CoCreateInstance (CLSID_WbemAdministrativeLocator,
    NULL ,
    CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER , 
    IID_IUnknown ,
    ( void ** ) & pIWbemLocator);
    pIWbemLocator->ConnectServer(
    L"root/default",  // Namespace
    username,
    password,
    ipaddress,
    flags, 
    Authority,
    Context,
    &pWbemServices
    );
      

  3.   

    IWbemServices * pWbemServices = NULL;
    if(pIWbemLocator->ConnectServer(
    L"root\cimv2"
    ,username
    ,password
    ,ipaddress
    0,              // flags
    NULL,           // Authority
    NULL,           // Context
    &pWbemServices
    );
    HRESULT hRes;
    BSTR strQuery = (L"select * from win32_service where name='tlntsvr'");
    BSTR strQL = (L"WQL");
    pWbemServices->ExecQuery(strQL, strQuery,WBEM_FLAG_RETURN_IMMEDIATELY,NULL,&pEnumObject);唉,不想打字了
    你哪句不懂的提问好了
    看在分的份上$_$
      

  4.   

    其实都看不懂.. 这个是COM编程吧 我没弄过这个..... 如果你有现成的完整的代码给我发过来好了,我把我剩的分都给你....
      

  5.   

    OK
    公司不让用QQ
    家里的网到期了,上不了
    QQ34510687