几段非常有用的脚本(来自微软网站,由downmoon精心收集)

所属分类: 脚本专栏 / vbs 阅读数: 1999
收藏 0 赞 0 分享
几段非常有用的脚本(来自微软网站,由downmoon精心收集) 
一、在网络硬件故障或网络故障断开时发送警告 
复制代码 代码如下:

strComputer = "." 
Set objWMIService = GetObject("winmgmts:" & strComputer & " ootwmi") 
Set colMonitoredEvents = objWMIService.ExecNotificationQuery _ 
    ("Select * from MSNdis_StatusMediaDisconnect") 
Do While True 
    Set strLatestEvent = colMonitoredEvents.NextEvent 
    Wscript.Echo "A network connection has been lost:" 
    WScript.Echo strLatestEvent.InstanceName, Now 
    Wscript.Echo 
Loop 


调用方法示例:cscript 网络断开.vbs >> F:\test\微软脚本\log.txt 

二、在网络硬件连接成功或网络故障恢复连接时发送警告 

复制代码 代码如下:

strComputer = "." 

Set objWMIService = GetObject("winmgmts:" & strComputer & " ootwmi") 
Set colMonitoredEvents = objWMIService.ExecNotificationQuery _ 
    ("Select * from MSNdis_StatusMediaConnect") 

Do While True 
    Set strLatestEvent = colMonitoredEvents.NextEvent 
    Wscript.Echo "A network connection has been made:" 
    WScript.Echo strLatestEvent.InstanceName, Now 
    Wscript.Echo 
Loop 

调用方法示例:cscript 网络连接.vbs >> F:\test\微软脚本\log.txt 

三、获取所有域用户信息 

复制代码 代码如下:

Const ADS_SCOPE_SUBTREE = 2 

Set objConnection = CreateObject("ADODB.Connection") 
Set objCommand =   CreateObject("ADODB.Command") 
objConnection.Provider = "ADsDSOObject" 
objConnection.Open "Active Directory Provider" 

Set objCOmmand.ActiveConnection = objConnection 
objCommand.CommandText = _ 
    "Select Name, Location from 'LDAP://DC=DomainName,DC=com' " _ 
        & "Where objectClass='computer'"  
objCommand.Properties("Page Size") = 1000 
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 
Set objRecordSet = objCommand.Execute 
objRecordSet.MoveFirst 

Do Until objRecordSet.EOF 
    Wscript.Echo "Computer Name: " & objRecordSet.Fields("Name").Value 
    Wscript.Echo "Location: " & objRecordSet.Fields("Location").Value 
    objRecordSet.MoveNext 
Loop 


调用方法示例:cscript 域用户信息.vbs >> F:\test\微软脚本\域用户信息.txt 

四、修改文本文件内容 

复制代码 代码如下:

Const ForReading = 1 
Const ForWriting = 2 

Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objTextFile = objFSO.OpenTextFile("sample.ini", ForReading) 

Do Until objTextFile.AtEndOfStream 
    strNextLine = objTextFile.Readline 


    intLineFinder = InStr(strNextLine, "UserName") 
    If intLineFinder <> 0 Then 
        strNextLine = "UserName=邀月工作室" 
    End If 

    strNewFile = strNewFile & strNextLine & vbCrLf 
Loop 

objTextFile.Close 

Set objTextFile = objFSO.OpenTextFile("sample.ini", ForWriting) 

objTextFile.WriteLine strNewFile 
objTextFile.Close 

调用方法示例:ModifyFile.vbs
附件:
Sample.ini:
复制代码 代码如下:

[OEM Install] 
ProgGroupName= 
DefaultDestDir= 
UserName= 
UserCompanyName= 
UserSerialNumber= 


五、通过脚本发送电子邮件

从安装了 SMTP Service 的计算机中发送电子邮件的脚本。

脚本代码


复制代码 代码如下:

Set objEmail = CreateObject("CDO.Message") 
objEmail.From = "monitor1@fabrikam.com" 
objEmail.To = "admin1@fabrikam.com" 
objEmail.Subject = "Atl-dc-01 down" 
objEmail.Textbody = "Atl-dc-01 is no longer accessible over the network." 
objEmail.Send 


调用方法示例:SendMail.vbs

六、在没有 SMTP Service 的条件下发送电子邮件

脚本设计用来在 Microsoft 的公司网络上进行工作。
复制代码 代码如下:

Set objEmail = CreateObject("CDO.Message") 
objEmail.From = "admin1@fabrikam.com" 
objEmail.To = "admin2@fabrikam.com" 
objEmail.Subject = "Server down" 
objEmail.Textbody = "Server1 is no longer accessible over the network." 
objEmail.Configuration.Fields.Item _ 
    ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 
objEmail.Configuration.Fields.Item _ 
    ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _ 
        "smarthost" 
objEmail.Configuration.Fields.Item _ 
    ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 
objEmail.Configuration.Fields.Update 
objEmail.Send 


调用方法示例:SendMailNoSMTP.vbs

七、将新的记录添加到数据库中

通过脚本检索计算机声卡的信息,然后将这些信息保存到带有 DSN Inventory 的 ADO 数据库中。
复制代码 代码如下:

Const adOpenStatic = 3 
Const adLockOptimistic = 3 
Const adUseClient = 3 
Set objConnection = CreateObject("ADODB.Connection") 
Set objRecordset = CreateObject("ADODB.Recordset") 
objConnection.Open "DSN=Inventory;" 
objRecordset.CursorLocation = adUseClient 
objRecordset.Open "SELECT * FROM Hardware" , objConnection, _ 
    adOpenStatic, adLockOptimistic 
Set colSoundCards = GetObject("winmgmts:").ExecQuery _ 
    ("Select * from Win32_SoundDevice") 
For Each objSoundCard in colSoundCards 
    objRecordset.AddNew 
    objRecordset("ComputerName") = objSoundCard.SystemName 
    objRecordset("Manufacturer") = objSoundCard.Manufacturer 
    objRecordset("ProductName") = objSoundCard.ProductName 
    objRecordset.Update 
Next 
objRecordset.Close 
objConnection.Close 

调用方法示例:AddOneRecord.vbs

更多精彩内容其他人还在看

vbscript Split函数用法详解(字符串转数组函数)

本文详细介绍了vbscript中split函数的用法,有关split函数的一些实例,vbscript中split函数的语法介绍,有需要的朋友参考下
收藏 0 赞 0 分享

VBS实现将Excel表格保存为txt文本

希望能够找到个能给excel表另存为TXT的VBS代码,虽然另存为可以选择,但还是需要直接VBS执行这一步另存为TXT格式的,应该如何写代码呢
收藏 0 赞 0 分享

vbs解决处理TXT文本数据相关问题实现代码

使用vbs处理txt数据时,会遇到一些问题,本文将提供详细的解决方法,希望可以帮助你们
收藏 0 赞 0 分享

关于vbs 生成静态页面过程中出现的问题

访问某个aspx页面,然后把服务器返回的页面以filestream 的形式保存为html格式,接下来将介绍实现代码
收藏 0 赞 0 分享

dim函数第三个参数设置截取字符的长度问题

dim函数的第三个参数,也就是截取字符的长度,我在设置这个的时候,出了些问题,提示无效的过程调用或参数,本文详细介绍如何解决
收藏 0 赞 0 分享

邪恶的eval和new Function使用介绍

这些代码可以干什么?可以肯定的是可以干很多猥琐的事
收藏 0 赞 0 分享

WScript.Shell对象SpecialFolders属性未公开文档分享

WshShell对象的SpecialFolders属性返WshSpecialFolders 对象,该对象是一个特殊文件夹集合,其中包含整套Windows特殊文件夹
收藏 0 赞 0 分享

用VBS修改(设置)系统时间和日期的代码

用 VBS 把系统的时间修改到2038年1月19日3时14分07秒之后,这样某些依赖于 Unix 时间戳的程序就会出问题。那么怎样用 VBS 修改系统的时间呢
收藏 0 赞 0 分享

VBS For Next循环的一些细节

For Next 语句是 VBS 中常用的循环语句,你可能已经用过无数次 For Next 循环,但是你是否注意过它的一些细节呢
收藏 0 赞 0 分享

VBS For Next循环的陷阱分享

在《VBS For Next循环的一些细节》中说到了 For Next 循环的控制变量仅仅在循环开始前求值一次,但是其中存在一处陷阱
收藏 0 赞 0 分享
查看更多