首页 > 编程 > VBScript > 正文

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

2020-06-26 18:06:03
字体:
来源:转载
供稿:网友
几段非常有用的脚本(来自微软网站,由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 
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表