发信人: netnice(麻辣老师)
整理人: i_am_trueman(2003-10-22 16:54:20), 站内信件
|
题目:用户审核脚本
说明:
文章来源:中文NT资源网[http://www.AboutNT.com]
版权信息:原创、编译的文章版权归本站所有,如有引用请与中文NT资源网[http://www.AboutNT.com]站长联系。
其它信息:中文NT资源网[http://www.AboutNT.com]为个人网站,站长沧海笑一声,Email:[email protected]
源码:
'来源:中文NT资源网(http://www.aboutnt.com)
'改写:沧海笑一声
'**************************************************************************
'* User Audit *
'* 用户审核程序可以放到一个登录脚本中,记录用户的一些事情,这样做会单从登录 *
'* 角度讲要比nt/2000提供的审'核功能简洁的多.它记录的信息包括基本用户和工作*
'* 站信息,注册表相关信息,网络信息和本地驱动器情况. *
'* USERAUDIT.VBS *
'* v1.2 April 2001 *
'* 原作者:Jeffery Hicks [email protected] *
'* 用法:cscript useraudit.vbs *
'**************************************************************************
On Error Resume Next
Dim WshNetwork, oFileSys, fh
Dim WshShell
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set WshShell = Wscript.CreateObject("Wscript.Shell")
'指定要记录数据的文件的位置,注意这儿没有进行文件是否存在的检查,如果文件已经存在
'可能会导致一定的问题.这儿将文件写在与脚本相同的目录下.
LogFile="." & WshNetwork.Username & "_" & Year(Now) & "-" & Month(Now) & "-"& Day(Now) & "-" & Hour(Now) & "-" & Minute(Now) & ".log"
Set oFileSys = CreateObject("Scripting.FileSystemObject")
set fh=oFileSys.CreateTextFile(LogFile, ForReading)
Wscript.echo "用户审核程序启动..."
fh.WriteLine "用户审核记录 - " & Now & VBCRLF
wscript.echo "收集用户信息..."
strTemp="用户域:" & vbTab & vbTab& WshNetwork.UserDomain & vbCRLF & "用户名:" & vbTab & vbTab& WshNetwork.UserName & vbCRLF & "计算机名:" & vbTab & WshNetwork.ComputerName
'wscript.echo strTemp
fh.WriteLine "用户信息:" & vbCRLF & strTemp & vbCRLF
'get Environmental variables
strTemp=""
For Each strEnv In WshShell.Environment("PROCESS")
strTemp = strTemp & "" &strEnv & vbCRLF
Next
'wscript.echo strTemp
fh.WriteLine strTemp
wscript.echo "收集本地驱动器信息..."
fh.WriteLine "驱动器利用情况:"
strTemp="Drive (Volume)"& vbTab & vbTab & "Total (MB)" & vbTab & "Free (MB)" & vbTab & "Utilization"
'wscript.echo strTemp
fh.WriteLine strTemp
strTemp=ShowFreeSpace()
'wscript.echo strTemp
fh.WriteLine strTemp & vbCRLF
wscript.echo "收集网络驱动器信息..."
fh.WriteLine "网络驱动器:"
strTemp=EnumNetwork()
'wscript.echo strTemp
fh.WriteLine strTemp & vbCRLF
wscript.echo "收集打印机信息..."
fh.WriteLine "打印机信息:"
strTemp=EnumPrint()
'wscript.echo strTemp
fh.WriteLine strTemp & vbCRLF
'or substitute any other text file you want to view
wscript.echo "取得 Boot.ini文件信息..."
strTemp=GetFile("c:oot.ini")
'wscript.echo strTemp
fh.WriteLine strTemp
wscript.echo "从注册表取得浏览服务信息..."
fh.WriteLine "计算机浏览器设置:"
t=GetBrowserSettings()
strTemp="域主浏览器?" & vbTab & t(0) & vbCRLF & "维护浏览列表?" & vbTab & t(1)
'wscript.echo strTemp
fh.WriteLine strTemp
wscript.echo "结果记录到" & Logfile
fh.Close
set WshNetwork=Nothing
set WshShell=Nothing
set oFileSys=Nothing
set fh=Nothing
wscript.quit
'--------------------------
' Functions
'--------------------------
Function ShowFreeSpace()
On Error Resume Next
dim oFS,collDrv
dim fs,d
set oFS=wscript.CreateObject("Scripting.FileSystemObject")
set collDrv=oFS.Drives
for each drv in collDrv
if drv.DriveType=2 then 'check fixed drives only
Set fs = CreateObject("Scripting.FileSystemObject")
Set d = fs.GetDrive(fs.GetDriveName(drv))
t = FormatNumber(d.TotalSize/(1024*1024), 0)
f = FormatNumber(d.FreeSpace/(1024*1024), 0)
u = 100-FormatNumber(f/t,2)*100
s= s & drv & " " & drv.VolumeName & " (" & drv.FileSystem & ")" & vbtab & vbtab & t & vbtab & vbtab & f & vbtab & vbtab & u & "%" & vbCRLF
end if
next
ShowFreeSpace=s
set oFS=Nothing
set collDrv=Nothing
set fs=Nothing
set d=Nothing
End Function
Function EnumNetwork()
On Error Resume Next
Set colDrives = WSHNetwork.EnumNetworkDrives
'If no network drives were enumerated, then inform user, else display
'enumerated drives
If colDrives.Count = 0 Then
ret="There are no drives to enumerate."
Else
ret = "Current network drive connections: " & vbCRLF
For i = 0 To colDrives.Count - 1 Step 2
ret = ret & vbCRLF & colDrives(i) & vbTab & colDrives(i + 1)
Next
End If
EnumNetwork=ret
set fs=Nothing
set d=Nothing
End Function
Function EnumPrint()
On Error Resume Next
Set colPrint = WSHNetwork.EnumPrinterConnections
'If no network printers enumerated, then inform user, else display
'enumerated printers
If colPrint.Count = 0 Then
ret="There are no printers to enumerate."
Else
ret = "Current Printer connections: " & vbCRLF
For i = 0 To colPrint.Count - 1 Step 2
ret = ret & vbCRLF & colPrint(i) & vbTab & colPrint(i + 1)
Next
End If
EnumPrint=ret
End Function
Function GetFile(strFile)
On Error Resume Next
const ForReading=1
set fh1=oFileSys.OpenTextFile(strFile, ForReading)
if err.number=0 then
if fh1.FileExists(strFile) then
rline=UCase(strFile) & vbCRLF & vbCRLF
do while fh1.AtEndofStream <>True
rline=rline & fh1.ReadLine & vbCRLF
loop
else
rline="Can't find " & strFile & vbCRLF
end if
else
rline="Error opening or accessing " & strFile & ". User may not have necessary permissions." & VBCLRF
end if
GetFile=rline
set fh1=Nothing
End Function
Function GetBrowserSettings()
On Error Resume Next
rkey = "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesBrowserParametersIsDomainMaster"
x=WshShell.RegRead(rkey)
rkey = "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesBrowserParametersMaintainServerList"
y=WshShell.RegRead(rkey)
GetBrowserSettings=Array(x,y)
End Function
'EOF
---- 你快乐,所以我快乐。
你的问题我来解决。我的问题向你请教。
■■■■■■
■蓝碟论坛■
■期待你来■
■■■■■■ |
|