[转载]脚本 其他
<P>信息来源:邪恶八进制信息安全团队(<A href="http://www.eviloctal.com">www.eviloctal.com</A>)</P><P>由邪恶八进制综合整理。</P>
<H1>利用搜索操作修改相似的 Active Directory 对象</H1>
<DIV class=date>更新日期: 9/12/2003</DIV>
<DIV style="HEIGHT: 18px"></DIV>
<P><B>描述信息</B></P>
<P>在特定域及其所有子域中的计算机上搜索以字符‘ATL’开头的字符串。之后,在结果集中修改所有计算机的位置属性。</P>
<P><B>说明:</B> 如果开始搜索的域中包含全局编录服务器,请在将第八行中的LDAP标记替换为GC标记。例如,将代码:</P><PRE class=codeSample>"<LDAP://dc=NA,dc=fabrikam,dc=com>;" & _
修改为:
"<GC://dc=NA,dc=fabrikam,dc=com>;" & _
</PRE>
<P><B>脚本代码</B></P><PRE class=codeSample>Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
objCommand.CommandText = _
"<LDAP://dc=NA,dc=fabrikam,dc=com>;" & _
"(&(objectCategory=Computer)(cn=ATL*));" & _
"ADsPath;subtree"
Set objRecordSet = objCommand.Execute
While Not objRecordset.EOF
strADsPath = objRecordset.Fields("ADsPath")
Set objComputer = GetObject(strADsPath)
objComputer.Put "location", "Atlanta, Georgia"
objComputer.SetInfo
objRecordSet.MoveNext
Wend
WScript.Echo objRecordSet.RecordCount & _
" computers objects modified."
objConnection.Close
<H1>读取并使用针对AD对象绑定操作的rootDSE属性</H1><DIV class=date>更新日期: 9/12/2003</DIV><DIV style="HEIGHT: 18px"></DIV><P><B>描述信息</B></P><P>如何利用rootDSE对大量对象执行绑定操作。附加代码将用以向操作员显示在绑定操作中所创建对象的选定属性。</P><P><B>脚本代码</B></P><PRE class=codeSample>Set objRootDSE = GetObject("LDAP://rootDSE")
strSchema = "LDAP://" & objRootDSE.Get("schemaNamingContext")
WScript.echo "ADsPath to schema: " & strSchema
Set objSchema = GetObject(strSchema)
WScript.echo "Schema Object:"
WScript.echo "Name: " & objSchema.Name
WScript.echo "Class: " & objSchema.Class & VbCrLf
strConfiguration = "LDAP://" & objRootDSE.Get("configurationNamingContext")
WScript.echo "ADsPath to configuration container: " & strConfiguration
Set objConfiguration = GetObject(strConfiguration)
WScript.echo "Configuration Object:"
WScript.echo "Name: " & objConfiguration.Name
WScript.echo "Class: " & objConfiguration.Class & VbCrLf
strDomain = "LDAP://" & objRootDSE.Get("defaultNamingContext")
WScript.echo "ADsPath to current domain container: " & strDomain
Set objDomain = GetObject(strDomain)
WScript.echo "Current Domain Object:"
WScript.echo "Name: " & objDomain.Name
WScript.echo "Class: " & objDomain.Class & VbCrLf
strRootDomain = "LDAP://" & objRootDSE.Get("rootDomainNamingContext")
WScript.echo "ADsPath to root domain container: " & strDomain
Set objRootDomain = GetObject(strRootDomain)
WScript.echo "Current Domain Object:"
WScript.echo "Name: " & objRootDomain.Name
WScript.echo "Class: " & objRootDomain.Class & VbCrLf
<H1>确定用以支持桥头服务器复制功能的协议类型</H1><DIV class=date>更新日期: 9/12/2003</DIV><DIV style="HEIGHT: 18px"></DIV><P><B>描述信息</B></P><P>读取来自站点域控制器的bridgeheadTransportList。</P><P><B>脚本代码</B></P><PRE class=codeSample>On Error Resume Next
Set objServer = GetObject _
("LDAP://CN=SEA-DC-01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,
CN=Configuration,DC=fabrikam,DC=com")
dnBHTList = objServer.GetEx("bridgeheadTransportList")
WScript.Echo "Bridge Head Transport List:"
WScript.Echo "This multi-valued attribute lists the protocol" & _
"transports over which this BridgeHead Server replicates"
For Each dnValue in dnBHTList
WScript.echo dnValue
Next
<H1>列举配置容器中的对象名称</H1><DIV class=date>更新日期: 9/12/2003</DIV><DIV style="HEIGHT: 18px"></DIV><P><B>描述信息</B></P><P>获取配置容器中的一级对象名称。</P><P><B>脚本代码</B></P><PRE class=codeSample>Set objConfiguration = GetObject _
("LDAP://cn=Configuration,dc=fabrikam,dc=com")
For Each objContainer in objConfiguration
WScript.Echo objContainer.Name
Next
<H1>将模板添加到 Windows Explorer“新建” 菜单</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>演示如何将 VBScript 脚本文件添加到 Windows Explorer 中的“新建”上下文菜单。需要把脚本模板放在 \Windows\System32\ShellExt 文件夹中(在 Windows XP 和 Windows .NET Server 上)或 \Winnt\ShellNew 文件夹中 (Windows 2000)。</P><P><B>脚本代码 </B></P><PRE class=codeSample>Set objShell = WScript.CreateObject("WScript.Shell")
objShell.RegWrite "HKCR\.VBS\ShellNew\FileName","template.vbs"
<H1>将元素添加到字典</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>演示脚本将三个 key-item 对添加到脚本运行时字典。此脚本必须运行在本地计算机上。.</P><P><B>脚本代码 </B></P><PRE class=codeSample>Set objDictionary = CreateObject("Scripting.Dictionary")
objDictionary.Add "Printer 1", "Printing"
objDictionary.Add "Printer 2", "Offline"
objDictionary.Add "Printer 3", "Printing"
<H1>将‘Command Prompt Here”添加到 Windows Explorer</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>将’ <B>Command Prompt Here</B> ’命令添加到 Windows Explorer 系统菜单。如果用户从系统菜单中选择‘ <B>Command Prompt Here</B> ’,将弹出一个命令窗口,在与当前的 Windows Explorer 文件夹相同的文件夹中打开。</P><P>有关使用 Windows Script Host 写入注册表的信息,请单击 <A href="http://msdn.microsoft.com/library/en-us/script56/html/wsmthregwrite.asp">此处</A>。</P><P><B>支持平台</B></P><TABLE class=dataTable id=EGAA cellSpacing=0 cellPadding=0><THEAD></THEAD><TBODY><TR class=record vAlign=top><TD><P class=lastInCell><B>Windows XP</B></P></TD><TD style="BORDER-RIGHT: #cccccc 1px solid"><P class=lastInCell><B>是</B></P></TD></TR><TR class=evenRecord vAlign=top><TD><P class=lastInCell><B>Windows Server 2003</B></P></TD><TD style="BORDER-RIGHT: #cccccc 1px solid"><P class=lastInCell><B>是</B></P></TD></TR><TR class=record vAlign=top><TD><P class=lastInCell><B>Windows 2000</B></P></TD><TD style="BORDER-RIGHT: #cccccc 1px solid"><P class=lastInCell><B>是</B></P></TD></TR><TR class=evenRecord vAlign=top><TD><P class=lastInCell><B>Windows NT 4.0</B></P></TD><TD style="BORDER-RIGHT: #cccccc 1px solid"><P class=lastInCell><B>是</B></P></TD></TR><TR class=record vAlign=top><TD><P class=lastInCell><B>Windows 98</B></P></TD><TD style="BORDER-RIGHT: #cccccc 1px solid"><P class=lastInCell><B>是,但是需要将 cmd.exe 更改为 command.com</B></P></TD></TR></TBODY></TABLE><DIV class=dataTableBottomMargin></DIV><P><B>脚本代码 </B></P><PRE class=codeSample>Set objShell = CreateObject("WScript.Shell")
objShell.RegWrite "HKCR\Folder\Shell\MenuText\Command\", "cmd.exe /k cd " & chr(34) & "%1" & chr(34)
objShell.RegWrite "HKCR\Folder\Shell\MenuText\", "Command Prompt Here"
<H1>转换 WMI 日期-时间值</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>演示将 WMI 使用的 Universal Time Coordinate (UTC) 值转换成标准的日期时间值的方法。此脚本检索安装操作系统的日期,并且将 UTC 值传送到名为 WMIDateStringToDate 的函数。此函数将 UTC 值(比如 <B>20011029113047.000000-480</B>)转换为标准日期-时间值(例如 <B>10/29/2001 11:30:47 AM</B>)。</P><P><B>脚本代码 </B></P><PRE class=codeSample>strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objOS = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each strOS in objOS
dtmInstallDate = strOS.InstallDate
strReturn = WMIDateStringToDate(dtmInstallDate)
Wscript.Echo strReturn
Next
Function WMIDateStringToDate(dtmInstallDate)
WMIDateStringToDate = CDate(Mid(dtmInstallDate, 5, 2) & "/" & _
Mid(dtmInstallDate, 7, 2) & "/" & Left(dtmInstallDate, 4) _
& " " & Mid (dtmInstallDate, 9, 2) & ":" & _
Mid(dtmInstallDate, 11, 2) & ":" & Mid(dtmInstallDate, _
13, 2))
End Function
<H1>使用脚本注释创建脚本文档</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>演示如何使用 FileSystemObject 作为将注释从脚本复制到单独的文本文件中的方法。</P><P><B>脚本代码 </B></P><PRE class=codeSample>Const ForReading = 1
Const ForWriting = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objScriptFile = objFSO.OpenTextFile("c:\scripts\Service_Monitor.vbs", _
ForReading)
Set objCommentFile = objFSO.OpenTextFile("c:\scripts\Comments.txt", _
ForWriting, TRUE)
Do While objScriptFile.AtEndOfStream <> TRUE
strCurrentLine = objScriptFile.ReadLine
intIsComment = Instr(1,strCurrentLine,"'*")
If intIsComment > 0 Then
objCommentFile.Write strCurrentLine & VbCrLf
End If
Loop
objScriptFile.Close
objCommentFile.Close
<H1>确定字典中项的数目</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>演示脚本计算脚本运行时字典中 key-item 对的数目。此脚本必须运行在本地计算机上。</P><P><B>脚本代码 </B></P><PRE class=codeSample>Set objDictionary = CreateObject("Scripting.Dictionary")
objDictionary.Add "Printer 1", "Printing"
objDictionary.Add "Printer 2", "Offline"
objDictionary.Add "Printer 3", "Printing"
Wscript.Echo objDictionary.Count
<H1>确定属性是否在全局目录中</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>确定指定的属性 (given-name) 是否包括在 Active Directory 的全局目录中。</P><P><B>脚本代码 </B></P><PRE class=codeSample>strAttributeName = "cn=given-name"
Set objSchemaAttribute = GetObject _
("LDAP://" & strAttributeName & _
",cn=schema,cn=configuration,dc=fabrikam,dc=com")
blnInGC = objSchemaAttribute.Get("isMemberOfPartialAttributeSet")
If blnInGC Then
WScript.Echo "The " & strAttributeName & _
" attribute is replicated to the Global Catalog."
Else
WScript.Echo "The " & strAttributeName & _
" attribute is not replicated to the Global Catalog."
End If
<H1>确定属性是否是可操作的</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>确定指定的属性 (Canonical-Name) 是否是 Active Directory 中的可操作属性。</P><P><B>脚本代码 </B></P><PRE class=codeSample>Const ADS_SYSTEMFLAG_ATTR_IS_CONSTRUCTED = &h00000004
strAttributeName = "cn=Canonical-Name"
Set objSchemaAttribute = GetObject _
("LDAP://" & strAttributeName & _
",cn=schema,cn=configuration,dc=fabrikam,dc=com")
intSystemFlags = objSchemaAttribute.Get("systemFlags")
If intSystemFlags AND ADS_SYSTEMFLAG_ATTR_IS_CONSTRUCTED Then
WScript.Echo strAttributeName & " is operational."
Else
WScript.Echo strAttributeName & " is not operational."
End If
<H1>确定计算机上的本地时间</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>报告计算机上的本地时间。</P><P>有关在这段代码中使用的 Win32_LocalTime 类别的更多信息,请单击 <A href="http://msdn.microsoft.com/library/en-us/wmisdk/wmi/win32_localtime.asp">此处</A>。</P><P><B>支持平台</B></P><TABLE class=dataTable id=EGAA cellSpacing=0 cellPadding=0><THEAD></THEAD><TBODY><TR class=record vAlign=top><TD><P class=lastInCell><B>Windows XP</B></P></TD><TD style="BORDER-RIGHT: #cccccc 1px solid"><P class=lastInCell><B>是</B></P></TD></TR><TR class=evenRecord vAlign=top><TD><P class=lastInCell><B>Windows Server 2003</B></P></TD><TD style="BORDER-RIGHT: #cccccc 1px solid"><P class=lastInCell><B>是</B></P></TD></TR><TR class=record vAlign=top><TD><P class=lastInCell><B>Windows 2000</B></P></TD><TD style="BORDER-RIGHT: #cccccc 1px solid"><P class=lastInCell><B>否</B></P></TD></TR><TR class=evenRecord vAlign=top><TD><P class=lastInCell><B>Windows NT 4.0</B></P></TD><TD style="BORDER-RIGHT: #cccccc 1px solid"><P class=lastInCell><B>否</B></P></TD></TR><TR class=record vAlign=top><TD><P class=lastInCell><B>Windows 98</B></P></TD><TD style="BORDER-RIGHT: #cccccc 1px solid"><P class=lastInCell><B>否</B></P></TD></TR></TBODY></TABLE><DIV class=dataTableBottomMargin></DIV><P><B>脚本代码 </B></P><PRE class=codeSample>strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_LocalTime")
For Each objItem in colItems
Wscript.Echo "Day: " & objItem.Day
Wscript.Echo "Day Of the Week: " & objItem.DayOfWeek
Wscript.Echo "Hour: " & objItem.Hour
Wscript.Echo "Milliseconds: " & objItem.Milliseconds
Wscript.Echo "Minute: " & objItem.Minute
Wscript.Echo "Month: " & objItem.Month
Wscript.Echo "Quarter: " & objItem.Quarter
Wscript.Echo "Second: " & objItem.Second
Wscript.Echo "Week In the Month: " & objItem.WeekInMonth
Wscript.Echo "Year: " & objItem.Year
Next
<H1>确定对象的 Active Directory 类别类型</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>确定 organizational-person 对象的 Active Directory 类别类型。</P><P><B>脚本代码 </B></P><PRE class=codeSample>strClassName = "cn=organizational-person"
Set objSchemaClass = GetObject _
("LDAP://" & strClassName & _
",cn=schema,cn=configuration,dc=fabrikam,dc=com")
intClassCategory = objSchemaClass.Get("objectClassCategory")
WScript.StdOut.Write strClassName & " is categorized as "
Select Case intClassCategory
Case 0
WScript.Echo "88"
Case 1
WScript.Echo "structural"
Case 2
WScript.Echo "abstract"
Case 3
WScript.Echo "auxiliary"
End Select
<H1>确定 Active Directory 对象的父类</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>确定 Active Directory 中的 Computer 对象的父类。</P><P><B>脚本代码 </B></P><PRE class=codeSample>strClassName = "cn=computer"
Set objSchemaClass = GetObject _
("LDAP://" & strClassName & _
",cn=schema,cn=configuration,dc=fabrikam,dc=com")
strSubClassOf = objSchemaClass.Get("subClassOf")
WScript.Echo "The " & strClassName & _
" class is a child of the " & strSubClassOf & _
" class."
<H1>确定 UTC 时间</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>报告计算机上的通用协调时间 (UTC) 。</P><P>有关在这段代码中使用的 Win32_LocalTime 类别的更多信息,请单击 <A href="http://msdn.microsoft.com/library/en-us/wmisdk/wmi/win32_utctime.asp">此处</A>。</P><P><B>支持平台</B></P><TABLE class=dataTable id=EGAA cellSpacing=0 cellPadding=0><THEAD></THEAD><TBODY><TR class=record vAlign=top><TD><P class=lastInCell><B>Windows XP</B></P></TD><TD style="BORDER-RIGHT: #cccccc 1px solid"><P class=lastInCell><B>是</B></P></TD></TR><TR class=evenRecord vAlign=top><TD><P class=lastInCell><B>Windows Server 2003</B></P></TD><TD style="BORDER-RIGHT: #cccccc 1px solid"><P class=lastInCell><B>是</B></P></TD></TR><TR class=record vAlign=top><TD><P class=lastInCell><B>Windows 2000</B></P></TD><TD style="BORDER-RIGHT: #cccccc 1px solid"><P class=lastInCell><B>否</B></P></TD></TR><TR class=evenRecord vAlign=top><TD><P class=lastInCell><B>Windows NT 4.0</B></P></TD><TD style="BORDER-RIGHT: #cccccc 1px solid"><P class=lastInCell><B>否</B></P></TD></TR><TR class=record vAlign=top><TD><P class=lastInCell><B>Windows 98</B></P></TD><TD style="BORDER-RIGHT: #cccccc 1px solid"><P class=lastInCell><B>否</B></P></TD></TR></TBODY></TABLE><DIV class=dataTableBottomMargin></DIV><P><B>脚本代码 </B></P><PRE class=codeSample>strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_UTCTime")
For Each objItem in colItems
Wscript.Echo "Day: " & objItem.Day
Wscript.Echo "Day Of the Week: " & objItem.DayOfWeek
Wscript.Echo "Hour: " & objItem.Hour
Wscript.Echo "Milliseconds: " & objItem.Milliseconds
Wscript.Echo "Minute: " & objItem.Minute
Wscript.Echo "Month: " & objItem.Month
Wscript.Echo "Quarter: " & objItem.Quarter
Wscript.Echo "Second: " & objItem.Second
Wscript.Echo "Week In the Month: " & objItem.WeekInMonth
Wscript.Echo "Year: " & objItem.Year
Next
<H1>确定哪些属性已经编制索引和/在全局编录中</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>确定哪些 Active Directory 属性已经编制索引和哪些属性在全局编录中。</P><P><B>脚本代码 </B></P><PRE class=codeSample>Const IS_INDEXED = 1
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
objCommand.Properties("Sort On") = "isMemberOfPartialAttributeSet"
objCommand.CommandText = _
"<LDAP://CN=Schema,CN=Configuration,DC=fabrikam,DC=com>;" & _
"(objectClass=attributeSchema);" & _
"lDAPDisplayName, isMemberOfPartialAttributeSet,searchFlags;onelevel"
Set objRecordSet = objCommand.Execute
While Not objRecordSet.EOF
WScript.Echo objRecordset.Fields("lDAPDisplayName")
If objRecordset.Fields("isMemberOfPartialAttributeSet")
Then
WScript.Echo "In the global catalog."
Else
WScript.Echo "Not in the global catlog."
End If
If IS_INDEXED AND objRecordset.Fields("searchFlags")
Then
WScript.Echo "Is indexed."
Else
WScript.Echo "Is not indexed."
End If
Wscript.Echo VbCrLf
objRecordSet.MoveNext
Wend
objConnection.Close</PRE><PRE class=codeSample><H1>显示域对象的 Six IADs 属性</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>检索域对象的核心接口的e ADsPath、Class、GUID、Name、Parent 和 Schema 属性。</P><P><B>脚本代码</B></P><PRE class=codeSample>Set objDomain = GetObject("LDAP://dc=NA,dc=fabrikam,dc=com")
WScript.Echo "ADsPath:" & objDomain.ADsPath
WScript.Echo "Class:" & objDomain.Class
WScript.Echo "GUID:" & objDomain.GUID
WScript.Echo "Name:" & objDomain.Name
WScript.Echo "Parent:" & objDomain.Parent
WScript.Echo "Schema:" & objDomain.Schema
<H1>显示一个所有属性都是单值的列表和一个所有属性都是多值的列表</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>使用搜索操作读取所有属性架构对象的 isSingleValued 属性。第一个列表其 isSingleValued 属性为 true 的所有属性,而第二个列表显示了其 isSingleValued 属性为 false 的所有属性。</P><P><B>注意:</B>考虑传送此输出到一个文件:</P><PRE class=codeSample>cscript scriptname.vbs > filename.txt
</PRE><P><B>脚本代码</B></P><PRE class=codeSample>Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
objCommand.CommandText = _
"<LDAP://CN=Schema,CN=Configuration,DC=fabrikam,DC=com>;" & _
"(&(objectClass=attributeSchema)(lDAPDisplayName=*));" & _
"lDAPDisplayName,isSingleValued;onelevel"
Set objRecordSet = objCommand.Execute
WScript.Echo "Single-valued attributes " & _
"(by lDAPDisplayName):" & VbCrLf
While Not objRecordSet.EOF
If objRecordset.Fields("isSingleValued") = TRUE Then
Wscript.echo objRecordset.Fields("lDAPDisplayName")
End If
objRecordSet.MoveNext
Wend
objRecordSet.MoveFirst
WScript.Echo VbCrLf & "Multi-valued attributes " & _
"(by lDAPDisplayName):" & VbCrLf
While Not objRecordSet.EOF
If objRecordset.Fields("isSingleValued") = FALSE Then
Wscript.echo objRecordset.Fields("lDAPDisplayName")
End If
objRecordSet.MoveNext
Wend
objConnection.Close</PRE><PRE class=codeSample><H1>枚举 WMI 中的 Abstract 类别</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>列出 root\cimv2 命名空间中定义的所有 WMI Abstract 类别。</P><P><B>脚本代码</B></P><PRE class=codeSample>strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colClasses = objWMIService.SubclassesOf()
For Each objClass in colClasses
For Each objClassQualifier In objClass.Qualifiers_
If LCase(objClassQualifier.Name) = "abstract" Then
WScript.Echo objClass.Path_.Class & ": " & _
objClassQualifier.Name & "=" & _
objClassQualifier.Value
End If
Next
Next
<H1>枚举 Active Directory 类别的所有属性</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>返回与 Active Directory 中的 Computer 类别相关的所有属性。</P><P><B>脚本代码 </B></P><PRE class=codeSample>Set objSchemaComputer = GetObject("LDAP://schema/computer")
WScript.Echo "Mandatory (Must-Contain) attributes"
For Each strAttribute in objSchemaComputer.MandatoryProperties
WScript.Echo strAttribute
Next
WScript.Echo VbCrLf & "Optional (May-Contain) attributes"
For Each strAttribute in objSchemaComputer.OptionalProperties
WScript.Echo strAttribute
Next
<H1>枚举所有的 WMI 命名空间</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>列出所有的 WMI 命名空间。</P><P><B>脚本代码</B></P><PRE class=codeSample>strComputer = "."
Call EnumNameSpaces("root")
Sub EnumNameSpaces(strNameSpace)
WScript.Echo strNameSpace
Set objWMIService = GetObject("winmgmts:\\" & strComputer & _
"\" & strNameSpace)
Set colNameSpaces = objWMIService.InstancesOf("__NAMESPACE")
For Each objNameSpace In colNameSpaces
Call EnumNameSpaces(strNameSpace & "\" & objNameSpace.Name)
Next
End Sub
<H1>枚举辅助类别</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>返回直接应用于 User 类别的所有 Active Directory 辅助类别。</P><P><B>脚本代码 </B></P><PRE class=codeSample>On Error Resume Next
strClassName = "cn=user"
Set objSchemaClass = GetObject _
("LDAP://" & strClassName & _
",cn=schema,cn=configuration,dc=fabrikam,dc=com")
arrSystemAuxiliaryClass = _
objSchemaClass.GetEx("systemAuxiliaryClass")
If isEmpty(arrSystemAuxiliaryClass) Then
WScript.Echo "There are no auxiliary classes" & _
" applied directly to this class."
Else
WScript.StdOut.Write "Auxiliary classes: "
For Each strAuxiliaryClass in arrSystemAuxiliaryClass
WScript.StdOut.Write strAuxiliaryClass & " | "
Next
WScript.Echo
End If
<H1>枚举 WMI 中的动态类别</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>列出在 root\cimv2 命名空间中列出的所有 WMI 动态类(其中包括 Association 类别)。</P><P><B>脚本代码</B></P><PRE class=codeSample>strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colClasses = objWMIService.SubclassesOf()
For Each objClass in colClasses
For Each objClassQualifier In objClass.Qualifiers_
If LCase(objClassQualifier.Name) = "dynamic" Then
WScript.Echo objClass.Path_.Class & ": " & _
objClassQualifier.Name & "=" & _
objClassQualifier.Value
End If
Next
Next
<H1>枚举 WMI 类别的属性</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>列出指定的 WMI 类别的属性。</P><P><B>脚本代码</B></P><PRE class=codeSample>strComputer = "."
strNameSpace = "root\cimv2"
strClass = "Win32_Service"
Set objClass = GetObject("winmgmts:\\" & strComputer & _
"\" & strNameSpace & ":" & strClass)
WScript.Echo strClass & " Class Properties"
WScript.Echo "------------------------------"
For Each objClassProperty In objClass.Properties_
WScript.Echo objClassProperty.Name
Next
<H1>枚举 WMI 类别的属性、方法和限定符。</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>列出指定的 WMI 类别的类别限定符、属性、属性限定符、方法和方法限定符。</P><P><B>脚本代码</B></P><PRE class=codeSample>strComputer = "."
strNameSpace = "root\cimv2"
strClass = "Win32_Service"
Set objClass = GetObject("winmgmts:\\" & strComputer & _
"\" & strNameSpace & ":" & strClass)
WScript.Echo strClass & " Class Qualifiers"
WScript.Echo "------------------------------"
i = 1
For Each objClassQualifier In objClass.Qualifiers_
If VarType(objClassQualifier.Value) = (vbVariant + vbArray) Then
strQualifier = i & ". " & objClassQualifier.Name & " = " & _
Join(objClassQualifier.Value, ",")
Else
strQualifier = i & ". " & objClassQualifier.Name & " = " & _
objClassQualifier.Value
End If
WScript.Echo strQualifier
strQualifier = ""
i = i + 1
Next
WScript.Echo
WScript.Echo strClass & " Class Properties and Property Qualifiers"
WScript.Echo "------------------------------------------------------"
i = 1 : j = 1
For Each objClassProperty In objClass.Properties_
WScript.Echo i & ". " & objClassProperty.Name
For Each objPropertyQualifier In objClassProperty.Qualifiers_
If VarType(objPropertyQualifier.Value) = (vbVariant + vbArray) Then
strQualifier = i & "." & j & ". " & _
objPropertyQualifier.Name & " = " & _
Join(objPropertyQualifier.Value, ",")
Else
strQualifier = i & "." & j & ". " & _
objPropertyQualifier.Name & " = " & _
objPropertyQualifier.Value
End If
WScript.Echo strQualifier
strQualifier = ""
j = j + 1
Next
WScript.Echo
i = i + 1 : j = 1
Next
WScript.Echo
WScript.Echo strClass & " Class Methods and Method Qualifiers"
WScript.Echo "-------------------------------------------------"
i = 1 : j = 1
For Each objClassMethod In objClass.Methods_
WScript.Echo i & ". " & objClassMethod.Name
For Each objMethodQualifier In objClassMethod.Qualifiers_
If VarType(objMethodQualifier.Value) = (vbVariant + vbArray) Then
strQualifier = i & "." & j & ". " & _
objMethodQualifier.Name & " = " & _
Join(objMethodQualifier.Value, ",")
Else
strQualifier = i & "." & j & ". " & _
objMethodQualifier.Name & " = " & _
objMethodQualifier.Value
End If
WScript.Echo strQualifier
strQualifier = ""
j = j + 1
Next
WScript.Echo
i = i + 1 : j = 1
Next
<H1>枚举 WMI 类别的限定符</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>列出指定的 WMI 类别的类限定符。</P><P><B>脚本代码</B></P><PRE class=codeSample>CstrComputer = "."
strNameSpace = "root\cimv2"
strClass = "Win32_Service"
Set objClass = GetObject("winmgmts:\\" & strComputer & _
"\" & strNameSpace & ":" & strClass)
WScript.Echo strClass & " Class Qualifiers"
WScript.Echo "------------------------------"
For Each objClassQualifier In objClass.Qualifiers_
If VarType(objClassQualifier.Value) = (vbVariant + vbArray) Then
strQualifier = objClassQualifier.Name & " = " & _
Join(objClassQualifier.Value, ",")
Else
strQualifier = objClassQualifier.Name & " = " & _
objClassQualifier.Value
End If
WScript.Echo strQualifier
strQualifier = ""
Next
<H1>枚举 WMI 命名空间</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>只列出那些直接在连接的命名空间下的 WMI 命名空间。</P><P><B>脚本代码</B></P><PRE class=codeSample>strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root")
Set colNameSpaces = objWMIService.InstancesOf("__NAMESPACE")
For Each objNameSpace In colNameSpaces
WScript.Echo objNameSpace.Name
Next
<H1>枚举 WMI 提供程序</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>列出安装在 root\cimv2 命名空间中的所有 WMI 提供程序。</P><P><B>脚本代码</B></P><PRE class=codeSample>strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colWin32Providers = objWMIService.InstancesOf("__Win32Provider")
For Each objWin32Provider In colWin32Providers
WScript.Echo objWin32Provider.Name
Next
<H1>识别已编制索引和全局编录中的属性</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>返回已编制索引和全局编录中的所有 Active Directory 属性。</P><P><B>脚本代码 </B></P><PRE class=codeSample>Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
objCommand.CommandText = _
"<LDAP://CN=Schema,CN=Configuration,DC=fabrikam,DC=com>;" & _
"(&(objectCategory=attributeSchema)(searchFlags:1.2.840.113556.1.4.804:=1)
(isMemberOfPartialAttributeSet=TRUE));" & _
"lDAPDisplayName;onelevel"
Set objRecordSet = objCommand.Execute
WScript.Echo "Indexed attributes in the global catalog:"
While Not objRecordSet.EOF
Wscript.echo objRecordSet.Fields("lDAPDisplayName")
objRecordSet.MoveNext
Wend
objConnection.Close
<H1>列出 Win32 类别的属性和方法</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>返回所有 WMI Win32 类别(例如 Win32_Service、Win32_Process、Win32_NTEventLog)的属性和方法。</P><P><B>脚本代码 </B></P><PRE class=codeSample>strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
For Each objclass in objWMIService.SubclassesOf()
intCounter=0
If Left(objClass.Path_.Class,5) = "Win32" Then
For Each Qualifier in objClass.Qualifiers_
If UCase(Trim(Qualifier.Name)) = "ASSOCIATION"
Then
intCounter = 1
End If
Next
If x = 0 Then
strComputer = "."
Set objWMIService = GetObject _
("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\cimv2")
Set strClass = objWMIService.Get(objClass.Path_.Class)
Wscript.Echo "PROPERTIES:"
For each strItem in strClass.properties_
Wscript.Echo objClass.Path_.Class & vbTab & strItem.name
Next
Wscript.Echo "METHODS:"
For Each strItem in strClass.methods_
Wscript.Echo objClass.Path_.Class & vbTab & strItem.name
Next
End If
End If
Next
<H1>列出 WMI cimV2 类别</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>返回在 cimV2 命令空间中发现的 WMI 类别的列表。</P><P><B>脚本代码 </B></P><PRE class=codeSample>strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
For Each objclass in objWMIService.SubclassesOf()
Wscript.Echo objClass.Path_.Class
Next
<H1>列出 WMI 类别的方法</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>列出指定的 WMI 类别的方法。</P><P><B>脚本代码</B></P><PRE class=codeSample>strComputer = "."
strNameSpace = "root\cimv2"
strClass = "Win32_Service"
Set objClass = GetObject("winmgmts:\\" & strComputer & _
"\" & strNameSpace & ":" & strClass)
WScript.Echo strClass & " Class Methods"
WScript.Echo "---------------------------"
For Each objClassMethod In objClass.Methods_
WScript.Echo objClassMethod.Name
Next
<H1>从字典中删除所有的元素</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>演示脚本从脚本运行时字典删除所有的 key-item 对。此脚本必须运行在本地计算机上。</P><P><B>脚本代码 </B></P><PRE class=codeSample>Set objDictionary = CreateObject("Scripting.Dictionary")
objDictionary.Add "Printer 1", "Printing"
objDictionary.Add "Printer 2", "Offline"
objDictionary.Add "Printer 3", "Printing"
colKeys = objDictionary.Keys
Wscript.Echo "First run: "
For Each strKey in colKeys
Wscript.Echo strKey
Next
objDictionary.RemoveAll
colKeys = objDictionary.Keys
Wscript.Echo VbCrLf & "Second run: "
For Each strKey in colKeys
Wscript.Echo strKey
Next
<H1>删除调试注释</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>演示如何使用 FileSystemObject 作为删除脚本中的注释的方法。需要标记为 '* BUG 的注释。</P><P><B>脚本代码 </B></P><PRE class=codeSample>Const ForReading = 1
Const ForWriting = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile("C:\Scripts\CreateUser.vbs", ForReading)
Do While objTextFile.AtEndOfStream <> true
strNextLine = objTextFile.Readline
intCheckForBugComment = Instr(strNextLine, "'* BUG")
If intCheckForBugComment = 0 Then
strSavedLines = strSavedLines & strNextLine & VbCrLf
End If
Loop
Set objTextFile = objFSO.OpenTextFile _
("c:\scripts\CreateUser.vbs ", ForWriting)
objTextFile.Write strSavedLines
objTextFile.Close
<H1>从字典中删除一个元素</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>演示脚本从脚本运行时字典中删除特定的 key-item 对。此脚本需要运行在本地计算机上。</P><P><B>脚本代码 </B></P><PRE class=codeSample>Set objDictionary = CreateObject("Scripting.Dictionary")
objDictionary.Add "Printer 1", "Printing"
objDictionary.Add "Printer 2", "Offline"
objDictionary.Add "Printer 3", "Printing"
colKeys = objDictionary.Keys
Wscript.Echo "First run: "
For Each strKey in colKeys
Wscript.Echo strKey
Next
objDictionary.Remove("Printer 2")
colKeys = objDictionary.Keys
Wscript.Echo VbCrLf & "Second run: "
For Each strKey in colKeys
Wscript.Echo strKey
Next
<H1>重命名本地计算机上“我的电脑”图标</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>重命名本地计算机上“我的电脑”图标,使其名称与计算机本身的名称相同。</P><P>有关在这段代码中使用的 Shell 对象的更多信息,请单击 <A href="http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/reference/objects/shell/shell.asp">此处</A>。</P><P><B>支持平台</B></P><TABLE class=dataTable id=EGAA cellSpacing=0 cellPadding=0><THEAD></THEAD><TBODY><TR class=record vAlign=top><TD><P class=lastInCell><B>Windows XP</B></P></TD><TD style="BORDER-RIGHT: #cccccc 1px solid"><P class=lastInCell><B>是</B></P></TD></TR><TR class=evenRecord vAlign=top><TD><P class=lastInCell><B>Windows Server 2003</B></P></TD><TD style="BORDER-RIGHT: #cccccc 1px solid"><P class=lastInCell><B>是</B></P></TD></TR><TR class=record vAlign=top><TD><P class=lastInCell><B>Windows 2000</B></P></TD><TD style="BORDER-RIGHT: #cccccc 1px solid"><P class=lastInCell><B>是</B></P></TD></TR><TR class=evenRecord vAlign=top><TD><P class=lastInCell><B>Windows NT 4.0</B></P></TD><TD style="BORDER-RIGHT: #cccccc 1px solid"><P class=lastInCell><B>否</B></P></TD></TR><TR class=record vAlign=top><TD><P class=lastInCell><B>Windows 98</B></P></TD><TD style="BORDER-RIGHT: #cccccc 1px solid"><P class=lastInCell><B>否</B></P></TD></TR></TBODY></TABLE><DIV class=dataTableBottomMargin></DIV><P><B>脚本代码 </B></P><PRE class=codeSample>Const MY_COMPUTER = &H11&
Set objNetwork = CreateObject("Wscript.Network")
objComputerName = objNetwork.ComputerName
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(MY_COMPUTER)
Set objFolderItem = objFolder.Self
objFolderItem.Name = objComputerNa</PRE><PRE class=codeSample><H1>检索 Web 页面</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>检索 Web 页面 [url]http://www.microsoft.com[/url] 的 HTML 源。此脚本由 Microsoft 的 Maxim Stepin 提供。</P><P><B>脚本代码 </B></P><PRE class=codeSample>url="http://www.microsoft.com"
Set objHTTP = CreateObject("MSXML2.XMLHTTP")
Call objHTTP.Open("GET", url, FALSE)
objHTTP.Send
WScript.Echo(objHTTP.ResponseText)
<H1>检索采用 MOF 格式的 WMI 类别的定义</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>检索和显示采用托管对象格式 (Managed Object Format,MOF) 语法的 WMI 类别定义的文字表示。</P><P><B>脚本代码</B></P><PRE class=codeSample>strComputer = "."
strNameSpace = "root\cimv2"
strClass = "Win32_Service"
Const wbemFlagUseAmendedQualifiers = &h20000
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\" & strNameSpace)
Set objClass = objWMIService.Get(strClass, wbemFlagUseAmendedQualifiers)
strMOF = objClass.GetObjectText_
WScript.Echo strMOF
<H1>检索采用 XML 格式的 WMI 类别的定义</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>检索和显示采用 XML 格式的 WMI 类别的文字表示。</P><P><B>脚本代码</B></P><PRE class=codeSample>strComputer = "."
strNameSpace = "root\cimv2"
strClass = "Win32_Service"
Const wbemFlagUseAmendedQualifiers = &h20000
Const wbemObjectTextFormatWMIDTD20 = 2
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\" & strNameSpace)
Set objClass = objWMIService.Get(strClass, wbemFlagUseAmendedQualifiers)
Set colNamedValueSet = CreateObject("Wbemscripting.SWbemNamedValueSet")
colNamedValueSet.Add "LocalOnly", False
colNamedValueSet.Add "IncludeQualifiers", True
colNamedValueSet.Add "ExcludeSystemProperties", False
colNamedValueSet.add "IncludeClassOrigin", True
strXML = objClass.GetText_(wbemObjectTextFormatWMIDTD20, 0, colNamedValueSet)
WScript.Echo strXML
<H1>对 WMI 数据进行排序</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>演示脚本显示如何使用已断开连接的数据集对 WMI 数据进行排序(WMI 本身并不允许您指定返回的数据的排列顺序)。在此脚本中,使用 WMI 检索服务信息并将其存储在已断开连接的记录集(即没有连接到物理数据源的记录集)中。然后,就可以根据服务状态而不是服务名称使用 Sort 方法对服务数据进行排序。</P><P><B>脚本代码 </B></P><PRE class=codeSample>Const adVarChar = 200
Const MaxCharacters = 255
Set DataList = CreateObject("ADOR.Recordset")
DataList.Fields.Append "ServiceName", adVarChar, MaxCharacters
DataList.Fields.Append "ServiceState", adVarChar, MaxCharacters
DataList.Open
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set ServiceList = objWMIService.ExecQuery _
("Select * from Win32_Service")
For Each Service in ServiceList
DataList.AddNew
DataList("ServiceName") = Service.Name
DataList("ServiceState") = Service.State
DataList.Update
Next
DataList.Sort = "ServiceState"
DataList.MoveFirst
Do Until DataList.EOF
Wscript.Echo DataList.Fields.Item("ServiceName") _
& vbTab & DataList.Fields.Item("ServiceState")
DataList.MoveNext
Loop
<H1>使用搜索操作移动相似的 Active Directory 对象</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>搜索域或任何子域中 department 属性为 Human Resources 的所有用户帐户对象。然后,该脚本将结果集内的用户帐户(它们已经不在 na.fabrikam.com 的 HR OU 中)移到此 OU 中。</P><P><B>脚本代码</B></P><PRE class=codeSample>Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
objCommand.CommandText = _
"<LDAP://dc=NA,dc=fabrikam,dc=com>;" & _
"(&(&(objectCategory=person)(objectClass=user)" & _
"(department=Human Resources)));" & _
"ADsPath,distinguishedName, name;subtree"
Set objRecordSet = objCommand.Execute
Set objOU = GetObject("LDAP://ou=HR,dc=NA,dc=fabrikam,dc=com")
While Not objRecordset.EOF
strADsPath = objRecordset.Fields("ADsPath")
strDNRecord=lcase(objRecordset.Fields("distinguishedName"))
strDNCompare=lcase("cn=" & objRecordset.Fields("name") & _
",ou=HR,dc=NA,dc=fabrikam,dc=com")
If strDNRecord <> strDNCompare Then
objOU.MoveHere strADsPath, vbNullString
WScript.Echo objRecordset.Fields("distinguishedName") & " Moved."
Else
WScript.Echo objRecordset.Fields("distinguishedName") & " Not Moved."
End If
objRecordSet.MoveNext
Wend
objConnection.Close
<H1>使用 WMI 枚举计算机中的环境变量</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>使用 WMI 返回有关计算机中所有环境变量的信息。</P><P>有关在这段代码中使用的 Win32_Environment 类别的更多信息,请单击 <A href="http://msdn.microsoft.com/library/en-us/wmisdk/wmi/win32_environment.asp">此处</A>。</P><P><B>支持平台</B></P><TABLE class=dataTable id=EGAA cellSpacing=0 cellPadding=0><THEAD></THEAD><TBODY><TR class=record vAlign=top><TD><P class=lastInCell><B>Windows XP</B></P></TD><TD style="BORDER-RIGHT: #cccccc 1px solid"><P class=lastInCell><B>是</B></P></TD></TR><TR class=evenRecord vAlign=top><TD><P class=lastInCell><B>Windows Server 2003</B></P></TD><TD style="BORDER-RIGHT: #cccccc 1px solid"><P class=lastInCell><B>是</B></P></TD></TR><TR class=record vAlign=top><TD><P class=lastInCell><B>Windows 2000</B></P></TD><TD style="BORDER-RIGHT: #cccccc 1px solid"><P class=lastInCell><B>是</B></P></TD></TR><TR class=evenRecord vAlign=top><TD><P class=lastInCell><B>Windows NT 4.0</B></P></TD><TD style="BORDER-RIGHT: #cccccc 1px solid"><P class=lastInCell><B>是,需要安装</B><A href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&familyid=afe41f46-e213-4cbf-9c5b-fbf236e0e875"></A><B></B></P></TD></TR><TR class=record vAlign=top><TD><P class=lastInCell><B>Windows 98</B></P></TD><TD style="BORDER-RIGHT: #cccccc 1px solid"><P class=lastInCell><B>是,需要安装 </B><A href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&familyid=afe41f46-e213-4cbf-9c5b-fbf236e0e875">? </A><B></B></P></TD></TR></TBODY></TABLE><DIV class=dataTableBottomMargin></DIV><P><B>脚本代码 </B></P><PRE class=codeSample>strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Environment")
For Each objItem in colItems
Wscript.Echo "Description: " & objItem.Description
Wscript.Echo "Name: " & objItem.Name
Wscript.Echo "System Variable: " & objItem.SystemVariable
Wscript.Echo "User Name: " & objItem.UserName
Wscript.Echo "Variable Value: " & objItem.VariableValue
Next
<H1>验证字典键值是否存在</H1><DIV style="HEIGHT: 18px"></DIV><P><B>描述</B></P><P>演示脚本验证脚本运行时字典 ( Script Runtime Dictionary) 中是否存在特定的键值。此脚本必须运行在本地计算机上。</P><P><B>脚本代码 </B></P><PRE class=codeSample>Set objDictionary = CreateObject("Scripting.Dictionary")
objDictionary.Add "Printer 1", "Printing"
objDictionary.Add "Printer 2", "Offline"
objDictionary.Add "Printer 3", "Printing"
If objDictionary.Exists("Printer 4") Then
Wscript.Echo "Printer 4 is in the Dictionary."
Else
Wscript.Echo "Printer 4 is not in the Dictionary."
End If
</PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE></PRE>
页:
[1]
