• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    远程或本地获取系统信息的脚本RGIS.vbs
    *******************************************************************************
    RGIS v1.03
    Remote Get Infomation Script, by zzzEVAzzz
    Welcome to visite www.isgrey.com  www.h4h4.com
    Usage:
    cscript rgis.vbs [/r targetIP username password] [/o filename] [/v] [/a] [/h]
    /r: remote get info.
    /o: output to file.
    /v: get more infomation.
    /a: get applications infomation.
    /h: show usage.
    *******************************************************************************

    描述:远程或本地获取系统信息的脚本。
    特点:不依赖于目标的ipc$开放与否。
    原理:直接访问目标的windows管理规范服务(WMI)。
    支持平台:win2kpro win2kserver winxp
    使用方法:
    在命令行方式下使用windows自带的脚本宿主程序cscript.exe调用脚本,例如:

    c:\&;cscript rgis.vbs [/r 目标IP 用户名 密码] [/o 输出文件] [/v] [/a] [/h]

    参数都是可选的。
    /r 用于远程获得信息。空密码用""表示。
    /o 加输出文件路径和名字,如文件不存在则自动新建,如存在则添加信息在末尾。
    /v 获取详细信息。
    /a 获取应用程序信息。
    /h 显示Usage。
    不加参数则显示本地信息。

    脚本访问的目标的135端口,如果目标135端口未开放,或者WMI服务关闭,那么脚本无法使用。
    另外,网络不是很好时,可能会等待较多的时间。
    有问题和建议请到 灰色轨迹论坛 或 H4网络安全论坛 发短消息给我。我的ID是zzzevazzz

    最后更新:2002-12-7
    更新记录:
    1.03  增加获得应用程序信息的功能
    1.02  增加获得HotFix和端口过滤简单信息的功能
    1.01  增加输出到文件的功能
    1.00  最初版本
    复制代码 代码如下:

    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.scriptfullnamechr(34))
       wscript.quit
    end if
    with wscript.arguments
    if .count>0 then
       ipaddress="."
       outfile=""
       username=""
       password=""
       viewtype=0
       program=0
       for arg=0 to .count-1
          select case left(lcase(.item(arg)),2)
          case "/h","/?","\h","\?"
             usage()
         wscript.quit
          case "/r","\r"
         if arg+3=.count-1 then
         ipaddress=.item(arg+1)
         username=.item(arg+2)
         password=.item(arg+3)
         else
         wscript.echo "Arguments Error!"vbcrlf
         usage()
         wscript.quit
         end if
          case "/v","\v"
         viewtype=1
          case "/o","\o"
         outfile=.item(arg+1)
          case "/a","\a"
         program=1
          end select
       next
    end if
    end with

    on error resume next
    if outfile>"" then
       set fs=createobject("scripting.filesystemobject")
       showerr()
       set of=fs.opentextfile(outfile,8,true)
       showerr()
    end if
    wscript.echo "Getting Infomation...."vbcrlf
    set objlocator=createobject("wbemscripting.swbemlocator")
    showerr()
    set objswb=objlocator.connectserver(ipaddress,"root/cimv2",username,password)
    showerr()
    on error goto 0

    set obj1=objget("win32_computersystem")
    set obj2=objget("win32_operatingsystem")
    set col3=objswb.instancesof("win32_processor")
    set obj4=objget("win32_logicalmemoryconfiguration")
    set obj5=objget("win32_bios")
    set obj6=objget("win32_displayconfiguration")
    set col7=objswb.instancesof("win32_diskdrive")
    set col8=objswb.instancesof("win32_logicaldisk")
    set col9=objswb.instancesof("win32_networkadapterconfiguration")
    set col10=objswb.instancesof("win32_quickfixengineering")
    if program=1 then
       set objswb1=objlocator.connectserver(ipaddress,"root/default",username,password)
       set obj11=objswb1.get("stdregprov")
    end if

    wnl "OS Info :"
    wnl "  Computer Name : "obj1.name
    wnl "  User Name : "obj1.username
    wnl "  Domain : "obj1.domain
    domainrole=""
    select case obj1.domainrole
    case 0
       domainrole="Workstation"
    case 1
       domainrole="Member Workstation"
    case 2
       domainrole="Server"
    case 3
       domainrole="Member Server"
    case 4
       domainrole="Backup Domain Controller"
    case 5
       domainrole="Main Domain Controller"
    end select
    with obj2
    wnl "  Domain Role : "domainrole
    wnl "  Caption : ".caption
    wnl "  Organization : ".organization
    wnl "  Registered User : ".registereduser
    wnl "  Install Date : "timeformat(.installdate)
    wnl "  Last BootUp Time : "timeformat(.lastbootuptime)
    wnl "  Windows Directory : ".windowsdirectory
    if viewtype=1 then
    wnl "  System Directory : ".systemdirectory
    wnl "  Boot Device : ".bootdevice
    wnl "  Country Code : ".countrycode
    wnl "  CSName : ".csname
    wnl "  Description : ".description
    wnl "  Manufacturer : ".manufacturer
    wnl "  Serial Number : ".serialnumber
    wnl "  Version : ".version
    wnl "  System Type : "obj1.systemtype
    wnl "  System Startup Delay : "obj1.systemstartupdelay"s"
    wnl "  System Startup Options : "obj1.systemstartupoptions(0)
    for i=1 to ubound(obj1.systemstartupoptions)
       wnl space(28)obj1.systemstartupoptions(i)
    next
    end if
    end with

    wnl vbcrlf"Processor Info :"
    wnl "  Number Of Processors : "obj1.numberofprocessors
    for each obj3 in col3
    with obj3
    wnl "  Device ID : ".deviceid
    wnl "  Name : ".name
    wnl "  Current Clock Speed : ".currentclockspeed"MHz"
    wnl "  Description : ".description
    if viewtype=1 then
    wnl "  Ext Clock : ".extclock"MHz"
    wnl "  L2 Cache Size : ".l2cachesize"KB"
    wnl "  L2 Cache Speed : ".l2cachespeed"MHz"
    wnl "  Processor Id : ".processorid
    wnl "  Manufacturer : ".manufacturer
    wnl "  Socket Designation : ".socketdesignation
    wnl "  Address Width : ".addresswidth"Bit"
    wnl "  Data Width : ".datawidth"Bit"
    end if
    end with
    next

    with obj4
    wnl vbcrlf"Memory Info :"
    wnl "  Total Physical Memory : "cint(.totalphysicalmemory/1024)"MB"
    wnl "  Free Physical Memory : "cint(obj2.freephysicalmemory/1024)"MB"
    if viewtype=1 then
    wnl "  Total PageFile Space : "cint(.totalpagefilespace/1024)"MB"
    wnl "  Total Virtual Memory : "cint(.totalvirtualmemory/1024)"MB"
    wnl "  Available Virtual Memory : "cint(.availablevirtualmemory/1024)"MB"
    end if
    end with

    if viewtype=1 then
    wnl vbcrlf"BIOS Info :"
    wnl "  Description : "obj5.description
    wnl "  Current Language : "obj5.currentlanguage
    wnl "  Version : "obj5.version
    wnl "  Manufacturer : "obj5.manufacturer
    end if

    with obj6
    wnl vbcrlf"Display Configuration :"
    wnl "  Caption : ".caption
    if viewtype=1 then
    wnl "  Device Name : ".devicename
    wnl "  Driver Version : ".driverversion
    end if
    wnl "  Display Frequency : ".displayfrequency"Hz"
    wnl "  Bits Per Pel : ".bitsperpel"Bit"
    wnl "  Pels : ".pelswidth" x ".pelsheight
    end with

    wnl vbcrlf"Disk Info :"
    for each obj7 in col7
    with obj7
    wnl "  DeviceID : ".deviceid
    wnl "  Caption : ".caption
    wnl "  Interface Type : ".interfacetype
    if viewtype=1 then
    wnl "  SCSI Bus : ".scsibus
    wnl "  SCSI Logical Unit : ".scsilogicalunit
    wnl "  SCSI Port : ".scsiport
    wnl "  SCSI TargetId : ".scsitargetid
    wnl "  Sectors Per Track : ".sectorspertrack"KB"
    end if
    wnl "  Partitions : ".partitions
    wnl "  Size : "sizeformat(.size)
    end with
    next
    str="  Volume"+space(2)+"Type"+space(8)+"Format"+space(4)
    str=str+"Size"+space(6)+"Free"+space(12)+"Label"
    wnl str
    for each obj8 in col8
    with obj8
    drivetype=""
    select case .drivetype
    case 0
       drivetype="Unknow"
    case 1
       drivetype="NoRootDir"
    case 2
       drivetype="Removable"
    case 3
       drivetype="Fixed"
    case 4
       drivetype="Network"
    case 5
       drivetype="CD-ROM"
    case 6
       drivetype="RAM"
    end select
    strpercent=""
    if .size>"" and .freespace>"" then
    strpercent=" ("formatpercent(.freespace/.size,0)")"
    end if
    str="  "wsp(.caption,8)wsp(drivetype,12)wsp(.filesystem,10)wsp(sizeformat(.size),10)
    str=strwsp(sizeformat(.freespace)strpercent,16).volumename
    wnl str
    end with
    next

    wnl vbcrlf"NIC Informaton :"
    for each obj9 in col9
    with obj9
    if .IPEnabled then
    wnl "  Index : ".index
    wnl "  Description : ".description
    if viewtype=1 then
    wnl "  DHCP Enabled : ".dhcpenabled
    wnl "  DHCP Server : ".dhcpserver
    wnl "  DNS Host Name : ".dnshostname
    wnl "  DNS Server Search Order : "wfl(.dnsserversearchorder)
    wnl "  WINS Primary Server : ".winsprimaryserver
    end if
    wnl "  IP Address : "wfl(.ipaddress)
    wnl "  MAC Address : ".macaddress
    wnl "  Default IP Gateway : "wfl(.defaultipgateway)
    wnl "  IP Subnet : "wfl(.ipsubnet)
    if viewtype=1 then
    wnl "  IP Filter Security Enabled : ".ipfiltersecurityenabled
    wnl "  IPSec Permit IP Protocols : "wfl(.ipsecpermitipprotocols)
    wnl "  IPSec Permit TCP Ports : "wfl(.ipsecpermittcpports)
    wnl "  IPSec Permit UDP Ports : "wfl(.ipsecpermitudpports)
    end if
    end if
    end with
    next

    if viewtype=1 then
    wnl vbcrlf"Hot Fixes Info :"
    for each obj10 in col10
    wnl "  Hot Fix ID : "obj10.hotfixid
    wnl "  Fix Comments : "obj10.fixcomments
    wnl "  Install Date : "obj10.installdate
    wnl "  Service Pack In Effect : "obj10.servicepackineffect
    next
    end if

    if program=1 then
    wnl vbcrlf"Applications :"
    HKLM=h80000002
    keypath="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
    obj11.enumkey HKLM,keypath,keyarray
    redim str(ubound(keyarray)+1)
    j=0
    for i=0 to ubound(keyarray)
       obj11.getstringvalue HKLM,keypath+keyarray(i),"displayname",strvalue
       if strvalue>"" then
       str(j)=strvalue
       j=j+1
       end if
    next
    if j>1 then
    for i=0 to j-1
       for k=0 to j-i-1
          if strcomp(str(k),str(k+1),1)=1 then
         strtemp=str(k+1)
         str(k+1)=str(k)
         str(k)=strtemp
          end if
       next
    next
    end if
    for i=0 to j-1
       wnl "  "str(i)
    next
    end if

    sub showerr()
    if err.number then
       wscript.echo "Error 0x"cstr(hex(err.number))" ."
       if err.description>"" then
          wscript.echo "Error description: "err.description"."
       end if
       wscript.quit
    end if
    end sub

    sub wnl(msg)
    wscript.echo msg
    if isobject(of) then
       on error resume next
       of.writeline msg
       showerror()
       on error goto 0
    end if
    end sub

    function wfl(byref obj)
    str=""
    for i=0 to ubound(obj)
       str=strobj(i)" "
    next
    wfl=str
    end function

    function wsp(msg,num)
    if msg>"" then
       msg=left(msg,num-1)
       wsp=msgspace(num-len(msg))
    else
       wsp=space(num)
    end if
    end function

    function timeformat(msg)
    timeformat=left(msg,4)"/"mid(msg,5,2)"/"mid(msg,7,2)" "mid(msg,9,2)":"mid(msg,11,2)":"mid(msg,13,2)
    end function

    function sizeformat(msg)
    if msg>"" then
    size=msg/1048576
    if size>1024 then
      sizeformat=round(size/1024,2)"GB"
    else
      sizeformat=round(size,1)"MB"
    end if
    end if
    end function

    function objget(msg)
    set col=objswb.instancesof(msg)
    for each objx in col
       set obj=objx
    next
    set objget=obj
    end function

    function usage()
    wscript.echo string(79,"*")
    wscript.echo "RGIS v1.03"
    wscript.echo "Remote Get Infomation Script, by zzzEVAzzz"
    wscript.echo "Welcome to visite www.isgrey.com  www.h4h4.com"
    wscript.echo "Usage:"
    wscript.echo "cscript rgis.vbs [/r targetIP username password] [/o filename] [/v] [/a] [/h]"
    wscript.echo "/r: remote get info."
    wscript.echo "/o: output to file."
    wscript.echo "/v: get more infomation."
    wscript.echo "/a: get applications infomation."
    wscript.echo "/h: show usage."
    wscript.echo string(79,"*")vbcrlf
    end function
    您可能感兴趣的文章:
    • 解析php中获取系统信息的方法
    • System.Timers.Timer定时执行程序示例代码
    • C#利用System.Threading.Thread.Sleep即时输出信息的详解
    • Linux下semop等待信号时出现Interrupted System Call错误(EINTR)解决方法
    • java system类使用方法示例 获取系统信息
    上一篇:Restart.vbs源代码可以重启远程电脑的vbs
    下一篇:远程开启/关闭目标telnet服务的windows脚本RTCS.vbs
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    远程或本地获取系统信息的脚本RGIS.vbs 远程,或,本地,获取,系统,