几段非常有用的脚本

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

一、在网络硬件故障或网络故障断开时发送警告

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\wmi")

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 & "\root\wmi")

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航