几段非常有用的脚本(来自微软网站,由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
=
"
[email protected]
"
objEmail.To
=
"
[email protected]
"
objEmail.Subject
=
"
Atl-dc-01down
"
objEmail.Textbody
=
"
Atl-dc-01isnolongeraccessibleoverthenetwork.
"
objEmail.Send
调用方法示例:SendMail.vbs
六、在没有 SMTP Service 的条件下发送电子邮件
脚本设计用来在 Microsoft 的公司网络上进行工作。
Set
objEmail
=
CreateObject
(
"
CDO.Message
"
)
objEmail.From
=
"
[email protected]
"
objEmail.To
=
"
[email protected]
"
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