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

博客收集了来自微软网站的实用脚本,包括网络断开和连接时的警告脚本、获取域用户信息脚本、修改文本文件内容脚本、发送电子邮件脚本等,还介绍了各脚本的调用方法,如通过 cscript 调用,部分脚本可将结果输出到指定文件,还有将记录添加到数据库的脚本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

几段非常有用的脚本(来自微软网站,由downmoon精心收集)
一、在网络硬件故障或网络故障断开时发送警告

strComputer = " . "
Set objWMIService = GetObject ( " winmgmts: " & strComputer & " ootwmi " )
Set colMonitoredEvents = objWMIService.ExecNotificationQuery_
(
" Select*fromMSNdis_StatusMediaDisconnect " )
Do While True
Set strLatestEvent = colMonitoredEvents.NextEvent
Wscript.Echo
" Anetworkconnectionhasbeenlost: "
WScript.EchostrLatestEvent.InstanceName,
Now
Wscript.Echo
Loop

调用方法示例:cscript 网络断开.vbs >> F:/test/微软脚本/log.txt

二、在网络硬件连接成功或网络故障恢复连接时发送警告

strComputer = " . "

Set objWMIService = GetObject ( " winmgmts: " & strComputer & " ootwmi " )
Set colMonitoredEvents = objWMIService.ExecNotificationQuery_
(
" Select*fromMSNdis_StatusMediaConnect " )

Do While True
Set strLatestEvent = colMonitoredEvents.NextEvent
Wscript.Echo
" Anetworkconnectionhasbeenmade: "
WScript.EchostrLatestEvent.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
" ActiveDirectoryProvider "

Set objCOmmand.ActiveConnection = objConnection
objCommand.CommandText
= _
" SelectName,Locationfrom'LDAP://DC=DomainName,DC=com' " _
& " WhereobjectClass='computer' "
objCommand.Properties(
" PageSize " ) = 1000
objCommand.Properties(
" Searchscope " ) = ADS_SCOPE_SUBTREE
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst

Do UntilobjRecordSet.EOF
Wscript.Echo
" ComputerName: " & 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 UntilobjTextFile.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.WriteLinestrNewFile
objTextFile.Close


调用方法示例:ModifyFile.vbs

附件:
Sample.ini:

[OEMInstall]
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-01down "
objEmail.Textbody
= " Atl-dc-01isnolongeraccessibleoverthenetwork. "
objEmail.Send


调用方法示例:SendMail.vbs

六、在没有 SMTP Service 的条件下发送电子邮件

脚本设计用来在 Microsoft 的公司网络上进行工作。

Set objEmail = CreateObject ( " CDO.Message " )
objEmail.From
= " admin1@fabrikam.com "
objEmail.To
= " admin2@fabrikam.com "
objEmail.Subject
= " Serverdown "
objEmail.Textbody
= " Server1isnolongeraccessibleoverthenetwork. "
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*FROMHardware " ,objConnection,_
adOpenStatic,adLockOptimistic
Set colSoundCards = GetObject ( " winmgmts: " ).ExecQuery_
(
" Select*fromWin32_SoundDevice " )
For Each objSoundCardincolSoundCards
objRecordset.AddNew
objRecordset(
" ComputerName " ) = objSoundCard.SystemName
objRecordset(
" Manufacturer " ) = objSoundCard.Manufacturer
objRecordset(
" ProductName " ) = objSoundCard.ProductName
objRecordset.Update
Next
objRecordset.Close
objConnection.Close

调用方法示例:AddOneRecord.vbs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值