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

(编辑:jimmy 日期: 2024/12/23 浏览:2)

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