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

本文收集了来自微软网站的几段有用脚本。包括网络断开、连接时发送警告,获取域用户信息,修改文本内容,发送电子邮件,添加数据库记录等脚本,并给出了相应的调用方法示例。
5417

被折叠的 条评论
为什么被折叠?



