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

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

 

posted @ 2007-12-28 14:10  邀月  阅读(773)  评论(0编辑  收藏  举报