几段非常有用的脚本(来自微软网站,由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
|