快速业务通道

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

作者 佚名 来源 ASP编程 浏览 发布时间 2013-07-09
*******************************************************************************
RGISv1.03
RemoteGetInfomationScript,byzzzEVAzzz
Welcometovisitewww.isgrey.com&www.h4h4.com
Usage:
cscriptrgis.vbs[/rtargetIPusernamepassword][/ofilename][/v][/a][/h]
/r:remotegetinfo.
/o:outputtofile.
/v:getmoreinfomation.
/a:getapplicationsinfomation.
/h:showusage.
*******************************************************************************

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

c:\>cscriptrgis.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
setobjshell=wscript.createobject("wscript.shell")
objshell.run("cmd.exe/kcscript//nologo"&chr(34)&wscript.scriptfullname&chr(34))
wscript.quit
endif
withwscript.arguments
if.count>0then
ipaddress="."
outfile=""
username=""
password=""
viewtype=0
program=0
forarg=0to.count-1
selectcaseleft(lcase(.item(arg)),2)
case"/h","/?","\h","\?"
usage()
wscript.quit
case"/r","\r"
ifarg+3<=.count-1then
ipaddress=.item(arg+1)
username=.item(arg+2)
password=.item(arg+3)
else
wscript.echo"ArgumentsError!"&vbcrlf
usage()
wscript.quit
endif
case"/v","\v"
viewtype=1
case"/o","\o"
outfile=.item(arg+1)
case"/a","\a"
program=1
endselect
next
endif
endwith

onerrorresumenext
ifoutfile<>""then
setfs=createobject("scripting.filesystemobject")
showerr()
setof=fs.opentextfile(outfile,8,true)
showerr()
endif
wscript.echo"GettingInfomation...."&vbcrlf
setobjlocator=createobject("wbemscripting.swbemlocator")
showerr()
setobjswb=objlocator.connectserver(ipaddress,"root/cimv2",username,password)
showerr()
onerrorgoto0

setobj1=objget("win32_computersystem")
setobj2=objget("win32_operatingsystem")
setcol3=objswb.instancesof("win32_processor")
setobj4=objget("win32_logicalmemoryconfiguration")
setobj5=objget("win32_bios")
setobj6=objget("win32_displayconfiguration")
setcol7=objswb.instancesof("win32_diskdrive")
setcol8=objswb.instancesof("win32_logicaldisk")
setcol9=objswb.instancesof("win32_networkadapterconfiguration")
setcol10=objswb.instancesof("win32_quickfixengineering")
ifprogram=1then
setobjswb1=objlocator.connectserver(ipaddress,"root/default",username,password)
setobj11=objswb1.get("stdregprov")
endif

wnl"OSInfo:"
wnl"ComputerName:"&obj1.name
wnl"UserName:"&obj1.username
wnl"Domain:"&obj1.domain
domainrole=""
selectcaseobj1.domainrole
case0
domainrole="Workstation"
case1
domainrole="MemberWorkstation"
case2
domainrole="Server"
case3
domainrole="MemberServer"
case4
domainrole="BackupDomainController"
case5
domainrole="MainDomainController"
endselect
withobj2
wnl"DomainRole:"&domainrole
wnl"Caption:"&.caption
wnl"Organization:"&.organization
wnl"RegisteredUser:"&.registereduser
wnl"InstallDate:"&timeformat(.installdate)
wnl"LastBootUpTime:"&timeformat(.lastbootuptime)
wnl"WindowsDirectory:"&.windowsdirectory
ifviewtype=1then
wnl"SystemDirectory:"&.systemdirectory
wnl"BootDevice:"&.bootdevice
wnl"CountryCode:"&.countrycode
wnl"CSName:"&.csname
wnl"Description:"&.description
wnl"Manufacturer:"&.manufacturer
wnl"SerialNumber:"&.serialnumber
wnl"Version:"&.version
wnl"SystemType:"&obj1.systemtype
wnl"SystemStartupDelay:"&obj1.systemstartupdelay&"s"
wnl"SystemStartupOptions:"&obj1.systemstartupoptions(0)
fori=1toubound(obj1.systemstartupoptions)
wnlspace(28)&obj1.systemstartupoptions(i)
next
endif
endwith

wnlvbcrlf&"ProcessorInfo:"
wnl"NumberOfProcessors:"&obj1.numberofprocessors
foreachobj3incol3
withobj3
wnl"DeviceID:"&.deviceid
wnl"Name:"&.name
wnl"CurrentClockSpeed:"&.currentclockspeed&"MHz"
wnl"Description:"&.description
ifviewtype=1then
wnl"ExtClock:"&.extclock&"MHz"
wnl"L2CacheSize:"&.l2cachesize&"KB"
wnl"L2CacheSpeed:"&.l2cachespeed&"MHz"
wnl"ProcessorId:"&.processorid
wnl"Manufacturer:"&.manufacturer
wnl"SocketDesignation:"&.socketdesignation
wnl"AddressWidth:"&.addresswidth&"Bit"
wnl"DataWidth:"&.datawidth&"Bit"
endif
endwith
next

withobj4
wnlvbcrlf&"MemoryInfo:"
wnl"TotalPhysicalMemory:"&cint(.totalphysicalmemory/1024)&"MB"
wnl"FreePhysicalMemory:"&cint(obj2.freephysicalmemory/1024)&"MB"
ifviewtype=1then
wnl"TotalPageFileSpace:"&cint(.totalpagefilespace/1024)&"MB"
wnl"TotalVirtualMemory:"&cint(.totalvirtualmemory/1024)&"MB"
wnl"AvailableVirtualMemory:"&cint(.availablevirtualmemory/1024)&"MB"
endif
endwith

ifviewtype=1then
wnlvbcrlf&"BIOSInfo:"
wnl"Description:"&obj5.description
wnl"CurrentLanguage:"&obj5.currentlanguage
wnl"Version:"&obj5.version
wnl"Manufacturer:"&obj5.manufacturer
endif

withobj6
wnlvbcrlf&"DisplayConfiguration:"
wnl"Caption:"&.caption
ifviewtype=1then
wnl"DeviceName:"&.devicename
wnl"DriverVersion:"&.driverversion
endif
wnl"DisplayFrequency:"&.displayfrequency&"Hz"
wnl"BitsPerPel:"&.bitsperpel&"Bit"
wnl"Pels:"&.pelswidth&"x"&.pelsheight
endwith

wnlvbcrlf&"DiskInfo:"
foreachobj7incol7
withobj7
wnl"DeviceID:"&.deviceid
wnl"Caption:"&.caption
wnl"InterfaceType:"&.interfacetype
ifviewtype=1then
wnl"SCSIBus:"&.scsibus
wnl"SCSILogicalUnit:"&.scsilogicalunit
wnl"SCSIPort:"&.scsiport
wnl"SCSITargetId:"&.scsitargetid
wnl"SectorsPerTrack:"&.sectorspertrack&"KB"
endif
wnl"Partitions:"&.partitions
wnl"Size:"&sizeformat(.size)
endwith
next
str="Volume"+space(2)+"Type"+space(8)+"Format"+space(4)
str=str+"Size"+space(6)+"Free"+space(12)+"Label"
wnlstr
foreachobj8incol8
withobj8
drivetype=""
selectcase.drivetype
case0
drivetype="Unknow"
case1
drivetype="NoRootDir"
case2
drivetype="Removable"
case3
drivetype="Fixed"
case4
drivetype="Network"
case5
drivetype="CD-ROM"
case6
drivetype="RAM"
endselect
strpercent=""
if.size<>""and.freespace<>""then
strpercent="("&formatpercent(.freespace/.size,0)&")"
endif
str=""&wsp(.caption,8)&wsp(drivetype,12)&wsp(.filesystem,10)&wsp(sizeformat(.size),10)
str=str&wsp(sizeformat(.freespace)&strpercent,16)&.volumename
wnlstr
endwith
next

wnlvbcrlf&"NICInformaton:"
foreachobj9incol9
withobj9
if.IPEnabledthen
wnl"Index:"&.index
wnl"Description:"&.description
ifviewtype=1then
wnl"DHCPEnabled:"&.dhcpenabled
wnl"DHCPServer:"&.dhcpserver
wnl"DNSHostName:"&.dnshostname
wnl"DNSServerSearchOrder:"&wfl(.dnsserversearchorder)
wnl"WINSPrimaryServer:"&.winsprimaryserver
endif
wnl"IPAddress:"&wfl(.ipaddress)
wnl"MACAddress:"&.macaddress
wnl"DefaultIPGateway:"&wfl(.defaultipgateway)
wnl"IPSubnet:"&wfl(.ipsubnet)
ifviewtype=1then
wnl"IPFilterSecurityEnabled:"&.ipfiltersecurityenabled
wnl"IPSecPermitIPProtocols:"&wfl(.ipsecpermitipprotocols)
wnl"IPSecPermitTCPPorts:"&wfl(.ipsecpermittcpports)
wnl"IPSecPermitUDPPorts:"&wfl(.ipsecpermitudpports)
endif
endif
endwith
next

ifviewtype=1then
wnlvbcrlf&"HotFixesInfo:"
foreachobj10incol10
wnl"HotFixID:"&obj10.hotfixid
wnl"FixComments:"&obj10.fixcomments
wnl"InstallDate:"&obj10.installdate
wnl"ServicePackInEffect:"&obj10.servicepackineffect
next
endif

ifprogram=1then
wnlvbcrlf&"Applications:"
HKLM=&h80000002
keypath="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
obj11.enumkeyHKLM,keypath,keyarray
redimstr(ubound(keyarray)+1)
j=0
fori=0toubound(keyarray)
obj11.getstringvalueHKLM,keypath+keyarray(i),"displayname",strvalue
ifstrvalue<>""then
str(j)=strvalue
j=j+1
endif
next
ifj>1then
fori=0toj-1
fork=0toj-i-1
ifstrcomp(str(k),str(k+1),1)=1then
strtemp=str(k+1)
str(k+1)=str(k)
str(k)=strtemp
endif
next
next
endif
fori=0toj-1
wnl""&str(i)
next
endif

subshowerr()
iferr.numberthen
wscript.echo"Error0x"&cstr(hex(err.number))&"."
iferr.description<>""then
wscript.echo"Errordescription:"&err.description&"."
endif
wscript.quit
endif
endsub

subwnl(msg)
wscript.echomsg
ifisobject(of)then
onerrorresumenext
of.writelinemsg
showerror()
onerrorgoto0
endif
endsub

functionwfl(byrefobj)
str=""
fori=0toubound(obj)
str=str&obj(i)&""
next
wfl=str
endfunction

functionwsp(msg,num)
ifmsg<>""then
msg=left(msg,num-1)
wsp=msg&space(num-len(msg))
else
wsp=space(num)
endif
endfunction

functiontimeformat(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)
endfunction

functionsizeformat(msg)
ifmsg<>""then
size=msg/1048576
ifsize>1024then
sizeformat=round(size/1024,2)&"GB"
else
sizeformat=round(size,1)&"MB"
endif
endif
endfunction

functionobjget(msg)
setcol=objswb.instancesof(msg)
foreachobjxincol
setobj=objx
next
setobjget=obj
endfunction

functionusage()
wscript.echostring(79,"*")
wscript.echo"RGISv1.03"
wscript.echo"RemoteGetInfomationScript,byzzzEVAzzz"
wscript.echo"Welcometovisitewww.isgrey.com&www.h4h4.com"
wscript.echo"Usage:"
wscript.echo"cscriptrgis.vbs[/rtargetIPusernamepassword][/ofilename][/v][/a][/h]"
wscript.echo"/r:remotegetinfo."
wscript.echo"/o:outputtofile."
wscript.echo"/v:getmoreinfomation."
wscript.echo"/a:getapplicationsinfomation."
wscript.echo"/h:showusage."
wscript.echostring(79,"*")&vbcrlf
endfunction

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号