中国DOS联盟论坛

China DOS Union

-- Unite DOS · Advance DOS · Grow DOS --
Union site: www.cn-dos.net Forum site: www.cn-dos.net/forum
Guest | Log in | Register | Members | Search | China DOS Union
中国DOS联盟论坛
The time now is 2026-11-10 11:25
47,815 topics / 349,930 posts / today 0 new / 48,291 members
DOS批处理 & 脚本技术(批处理室) » [Absolute Good Materials] Complete Collection of WIM WMIC Development Technology Materials (Continuously Updating......)
Printable Version  12,641 / 52
Floor16 HUNRYBECKY Posted 2006-12-13 02:51
银牌会员 Posts 442 Credits 1,179
6. Another section about scripts for checking the version detection of all scripts on the computer. Please save the code as version.vbs. Double-click to run or enter start version.vbs in CMD (note to match your own path)
;Code starts ===============================================
On Error Resume Next
WScript.Echo "WSH Version: " & WScript.Version
Wscript.Echo "VBScript Version: " & ScriptEngineMajorVersion _
& "." & ScriptEngineMinorVersion
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer _
& "\root\cimv2")
Set colWMISettings = objWMIService.ExecQuery _
("Select * from Win32_WMISetting")
For Each objWMISetting in colWMISettings
Wscript.Echo "WMI Version: " & objWMISetting.BuildVersion
Next
Set objShell = CreateObject("WScript.Shell")
strAdsiVersion = objShell.RegRead("HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\{E92B03AB-B707-11d2-9CBD-0000F87A369E}\Version")
If strAdsiVersion = vbEmpty Then
strAdsiVersion = objShell.RegRead("HKLM\SOFTWARE\Microsoft\ADs\Providers\LDAP\")
If strAdsiVersion = vbEmpty Then
strAdsiVersion = "ADSI is not installed."
Else
strAdsiVersion = "2.0"
End If
End If
WScript.Echo "ADSI Version: " & strAdsiVersion

;Code ends ==========================================
Floor17 kcdsw Posted 2006-12-13 02:55
中级用户 Posts 179 Credits 404
I can also download at 600K/s
Floor18 namejm Posted 2006-12-13 02:58
荣誉版主 Posts 1,737 Credits 5,226 From 成都
The materials are very good, and points are given for encouragement.

There is a phenomenon of disconnection in the link address. After clicking, it cannot jump correctly. It would be great if it could be corrected.
Floor19 HUNRYBECKY Posted 2006-12-13 02:58
银牌会员 Posts 442 Credits 1,179
7. Here's another WMI - related tool. This was actually obtained from the MS website. MS touts this thing quite well. Actually, this is an HTML file. I'll post the code here. Please copy all the code into a text file and save it as "scriptomatic.hta", then double - click to run it.
;Code starts here ====================================
<html>
<!--********************************************************************
'*
'* File: scriptomatic.hta
'* Created: August 2002
'* Version: 1.0
'*
'* Description: Learning tool. Enables users to generate and run
'* WSH scripts (in VBScript) that use WMI to display
'* properties available through the Win32_ classes.
'*
'*
'* Copyright (C) 2002 Microsoft Corporation
'*
'********************************************************************-->
<title>Windows .NET Server Resource Kit - Scriptomatic</title>

<HTA:APPLICATION
ID="objScriptomatic"
APPLICATIONNAME="Scriptomatic"
SCROLL="no"
SINGLEINSTANCE="yes"
WINDOWSTATE="normal"
>
<head>

<style>
BODY
{
background-color: buttonface;
font-family: Helvetica;
font-size: 8pt;
margin-top: 10px;
margin-left: 10px;
margin-right: 10px;
margin-bottom: 10px;
}


.button
{
font-family: Helvetica;
font-size: 8pt;
width: 35px;
}

textarea
{
font-family: arial;
font-size: 8pt;
margin-left: 3px;
}

select
{
font-family: arial;
font-size: 8pt;
width: 450px;
margin-left: 0px;
}

</style>

<script language="vbscript">

'*********************************************
'* WHILE LOADING...
'*
'* As the application loads, we open a new
'* browser window to act as a crude progress dialog
'* while we wait for the enumeration of the WMI
'* classes to complete.
'*
'* We minimize the parent window prior to presenting
'* the progress dialog and resize it back to normal
'* once the classes are enumerated.
'*
'*********************************************

Sub Window_Onload

'* resize parent window

self.ResizeTo 1,1
self.MoveTo 300,300

'* create dialog window

Set objDialogWindow = window.Open("about:blank","ProgressWindow","height=15,width=250,left=300,top=300,status=no,titlebar=no,toolbar=no,menubar=no,location=no,scrollbars=no")
objDialogWindow.Focus()
objDialogWindow.ResizeTo 250,15
objDialogWindow.document.body.style.fontFamily = "Helvetica"
objDialogWindow.document.body.style.fontSize = "11pt"
objDialogWindow.document.writeln "<html><body>Loading WMI Classes.</body></html>"
objDialogWindow.document.title = "Please wait."
objDialogWindow.document.body.style.backgroundColor = "buttonface"
objDialogWindow.document.body.style.borderStyle = "none"
objDialogWindow.document.body.style.marginTop = 15

'****************************************************************************
'* enumerate the WMI classes in the cimv2 namespace, filling up a recordset
'* with the names of the classes that begin with Win32_ and are not association
'* classes. we'll use the class names stored in the recordset to populate a
'* pulldown.
'*****************************************************************************

Const adVarChar = 200
Const MaxCharacters = 255
strComputer = "."

Set rsDataList = CreateObject("ADODB.Recordset")
rsDataList.Fields.Append "ClassName", adVarChar, MaxCharacters
rsDataList.Open

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

iCounter = 0
For Each objclass in objWMIService.SubclassesOf()

'* write a . to the dialog window once for every 250 classes
'* to let the user know something is still happening.

iCounter = iCounter + 1
If iCounter Mod 250 = 0 Then
objDialogWindow.document.writeln "."
End If
bIsQualifier = False
If UCase(Left(objClass.Path_.Class,5)) = "WIN32" Then
For Each Qualifier in objClass.Qualifiers_
If UCase(Trim(Qualifier.Name)) = "ASSOCIATION" Then
bIsQualifier = True
End If
Next

'* the class name starts with win32_ and is not an association
'* class - so append it to the recordset

If bIsQualifier = False Then
rsDataList.AddNew
rsDataList("ClassName") = objClass.Path_.Class
rsDataList.Update
End If
End If
Next

'* populate the pulldown

rsDataList.Sort = "ClassName"
rsDataList.MoveFirst
strHTML = "<select onChange=""ComposeCode()"" name=ClassesPulldown>" &_
"<option value=""PulldownMessage"">Begin by selecting a class"
Do Until rsDataList.EOF
strHTML = strHTML & "<option value= " & chr(34) &_
rsDataList.Fields.Item("ClassName") & chr(34) &_
">" & rsDataList.Fields.Item("ClassName")
rsDataList.MoveNext
Loop
strHTML = strHTML & "</select>"
wmi_classes.insertAdjacentHTML "beforeEnd", strHTML


'* the classes are enumerated, close the progress dialog
'* and resize the main window

objDialogWindow.Close
self.Focus()
self.ResizeTo 670,550
self.MoveTo 200,200

'* the user hasn't had a chance to select a class and generate
'* a script - so disable the run and save buttons because
'* they are not yet meaningful.

run_button.disabled = True
save_button.disabled = True

End Sub

'****************************************************************************
'* when the user selects a class from the pulldown, the ComposeCode subroutine
'* is called. it queries WMI to determine the properties of the class the user
'* selected and uses the information to construct sample code which it puts
'* in the main window's textarea.
'****************************************************************************

Sub ComposeCode

'* if the user happens to select the message instead of a class, just
'* disable the run and save buttons and exit the subroutine

If ClassesPulldown.Value = "PulldownMessage" Then
run_button.disabled = True
save_button.disabled = True
Exit Sub
End If

strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objClass = objWMIService.Get(ClassesPulldown.Value)
strHTML = "<textarea cols=100 rows=30>"
strHTML = strHTML & "On Error Resume Next" & Chr(10)
strHTML = strHTML & "strComputer = " & chr(34) & "." & chr(34) & Chr(10)
strHTML = strHTML & "Set objWMIService = GetObject(" & chr(34) & "winmgmts:\\" & chr(34) & " & strComputer & " & chr(34) & "\root\cimv2" & chr(34) & ")" & Chr(10)
strHTML = strHTML & "Set colItems = objWMIService.ExecQuery(" & chr(34) & "Select * from " & ClassesPulldown.value & chr(34) & ",,48)" & Chr(10)
strHTML = strHTML & "For Each objItem in colItems" & Chr(10)
For Each objProperty in objClass.properties_
strHTML = strHTML & "&nbsp; &nbsp; Wscript.Echo " & chr(34) & objProperty.name & ": " & chr(34) & " & " & "objItem." & objProperty.name & Chr(10)
Next
strHTML = strHTML & "Next" & "</textarea>"
code.InnerHTML= strHTML

'* once the code is successfully composed and put into the textarea, ensure
'* that the run and save buttons are enabled

run_button.disabled = False
save_button.disabled = False

End Sub

'****************************************************************************
'* when the user presses the Run button, we use the WshShell object's Run
'* method to run the code currently in the textarea under cscript.exe. we use
'* cmd.exe's /k parameter to ensure the command window remains visible after
'* the script has finished running.
'****************************************************************************

Sub RunScript

Set objFS = CreateObject("Scripting.FileSystemObject")
strTmpName = "temp_script.vbs"
Set objScript = objFS.CreateTextFile(strTmpName)
objScript.Write code.InnerText
objScript.Close
Set objShell = CreateObject("WScript.Shell")
strCmdLine = "cmd /k cscript.exe "
strCmdLine = strCmdLine & strTmpName
objShell.Run(strCmdLine)

End Sub

'****************************************************************************
'* when the user presses the Save button, we present them with an InputBox
'* and force them to give us the full path to where they'd like to the save
'* the script that is currently in the textarea. The user is probably quite
'* upset with our laziness here....and who can blame them?
'****************************************************************************

Sub SaveScript

Set objFSO = CreateObject("Scripting.FileSystemObject")
strSaveFileName = InputBox("Please enter the complete path where you want to save your script (for example, C:\Scripts\MyScript.vbs).")
If strSaveFileName = "" Then
Exit Sub
End If

Set objFile = objFSO.CreateTextFile(strSaveFileName)
objFile.WriteLine code.InnerText
objFile.Close

End Sub


'****************************************************************************
'* when the user presses the Open button, we present them with an InputBox
'* and force them to give us the full path to the script they'd like to open.
'* This is, of course, rather wonky - but it's meant to be.
'****************************************************************************

Sub OpenScript

Set objFSO = CreateObject("Scripting.FileSystemObject")
strOpenFileName = InputBox("Please enter the complete path name for your script (for example, C:\Scripts\MyScript.vbs).")
If strOpenFileName = "" Then
Exit Sub
End If

Set objFile = objFSO.OpenTextFile(strOpenFileName)
strHTML = "<textarea cols=100 rows=30>"
strHTML = strHTML & objFile.ReadAll()
strHTML = strHTML & "</textarea>"
code.InnerHTML = strHTML
objFile.Close
run_button.disabled = False
save_button.disabled = False

End Sub

'****************************************************************************
'* when the user presses the Quit button, the file where we've been storing
'* the scripts gets deleted and the main window closes.
'****************************************************************************

Sub QuitScript

On Error Resume Next
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFile "temp_script.vbs"
Set objFSO = Nothing
self.Close()

End Sub


</script>
</head>


'***********************************************************
'* our HTML layout - the only thing of note here is that when
'* each of the buttons is pressed (clicked), their onClick
'* attributes causes the appropriate subroutine to be called
'***********************************************************

<body>

<table>
<td>
<span id="wmi_classes">&nbsp;</span>
<input id=runbutton class="button" type="button" value="Run" name="run_button" onClick="RunScript()">
<input id=savebutton class="button" type="button" value="Save" name="save_button" onClick="SaveScript()">
<input id=openbutton class="button" type="button" value="Open" name="open_button" onClick="OpenScript()">
<input id=quitbutton class="button" type="button" value="Quit" name="quit_button" onClick="QuitScript()">
<div ID=code_header></div>
<div id="code"></div>
</td>
</tr>
</table>



</body>

</html>

;Code ends ==============================================
Floor20 HUNRYBECKY Posted 2006-12-13 03:00
银牌会员 Posts 442 Credits 1,179
Originally posted by namejm at 2006-12-13 02:58:
  The materials are very good, plus points for encouragement.

  There is a problem with the disconnection of the link address. After clicking, it cannot jump correctly. It would be great if it can be corrected.


Moderator namejm: The link is a bit problematic. I copied it like this, I don't know if it's a problem with the upload system. So when downloading, you must copy the entire correct link and then enter it in the browser address and press enter to download.
Floor21 HUNRYBECKY Posted 2006-12-13 03:03
银牌会员 Posts 442 Credits 1,179
Note that the <WMI Technology Guide> is a compressed package, and there is a text file inside it, which contains the password and the opening method. This PDF must be opened with version 7.0.
Floor22 HUNRYBECKY Posted 2006-12-13 03:08
银牌会员 Posts 442 Credits 1,179
8. Another WMI query analysis tool. It's from a foreign website. It has source code attached. You'll regret not downloading it. But the program doesn't run on my computer. I don't know why. Everyone test and give feedback on what the problem is. Thanks.
Download link:
http://zhenlove.com.cn/cndos/fileup/files/WQLAnalyzer_1.02(wmi query analysis tool with source code).zip
Floor23 HUNRYBECKY Posted 2006-12-13 03:15
银牌会员 Posts 442 Credits 1,179
9. Another WMI script tutorial. This was also collected from the internet, and I don't remember the download address. It seems that there is a missing Chapter 4; you can search on the internet yourself. It seems there is also on the MS website, the address is http://www.microsoft.com/china/MSDN/library/enterprisedevelopment/softwaredev/WDdnclinicscripting.mspx.

Download address: http://zhenlove.com.cn/cndos/fileup/files/wmi Script Introduction (incomplete pdf).rar


All the information I collected about WMI WMIC has been sent.
Floor24 lxmxn Posted 2006-12-13 03:26
版主 Posts 4,938 Credits 11,386
Originally posted by kcdsw at 2006-12-13 02:55:
I can even download at 600K/s


  When I was downloading, the owner had not uploaded it completely, so I couldn't download. You can download because the group owner has uploaded all completely.
  600k/s?? What kind of connection are you using?? Here, I can't exceed 50k/s with Thunder, sweat......
Floor25 lxmxn Posted 2006-12-13 03:29
版主 Posts 4,938 Credits 11,386

  Provide so many materials, give extra points to encourage.
Floor26 HUNRYBECKY Posted 2006-12-13 03:43
银牌会员 Posts 442 Credits 1,179
I hope everyone will post the collected materials related to WMI WMIC here to enrich the relevant materials and provide reference materials for batch programming. It is best to be different.
Floor27 kcdsw Posted 2006-12-13 09:23
中级用户 Posts 179 Credits 404
Hehe, I'm using broadband.

Attachments
新建 BMP 图像.JPG (22.58 KiB)
Floor28 vkill Posted 2006-12-14 05:48
金牌会员 Posts 1,744 Credits 4,103 From 甘肃.临泽
Floor29 9527 Posted 2006-12-14 05:57
银牌会员 Posts 438 Credits 1,185 From 北京
I thought it was an e - book? Alas, this book has been available as early as 2 years ago. Look at the following picture, it's mainly about the explanation of WMI, and besides the book, there's my that hand (just took it, heh heh.............)
Floor30 lxmxn Posted 2006-12-14 06:01
版主 Posts 4,938 Credits 11,386

  9527, you~~
  
  Hiding good stuff and not sharing?!
Prev  1 2 3 4  Next
[ Contact the Union admin team - 中国DOS联盟 - Standard version ]
Sponsored by ifanr Inc | © 2001–2023