China DOS Union

-- Unite DOS · Advance DOS · Grow DOS --

Union site: www.cn-dos.net Forum site: www.cn-dos.net/forum
DOS stands for freedom, openness and progress. Let us work hard, learn from the openness and GNU spirit of FreeDOS and Linux, and together build and grow a free GNU GPL world!

中国DOS联盟论坛
The time now is 2026-06-28 23:40
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [Absolute Good Materials] Complete Collection of WIM WMIC Development Technology Materials (Continuously Updating......) View 11,060 Replies 52
Floor 16 Posted 2006-12-13 02:51 ·  中国 广东 东莞 电信
银牌会员
★★★
Credits 1,179
Posts 442
Joined 2006-09-09 22:47
19-year member
UID 62249
Status Offline
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 ==========================================
Floor 17 Posted 2006-12-13 02:55 ·  中国 北京 海淀区 方正集团
中级用户
★★
Credits 404
Posts 179
Joined 2006-03-30 14:44
20-year member
UID 53056
Status Offline
I can also download at 600K/s
Floor 18 Posted 2006-12-13 02:58 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
Credits 5,226
Posts 1,737
Joined 2006-03-10 00:38
20-year member
UID 51697
From 成都
Status Offline
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.
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
Floor 19 Posted 2006-12-13 02:58 ·  中国 广东 东莞 电信
银牌会员
★★★
Credits 1,179
Posts 442
Joined 2006-09-09 22:47
19-year member
UID 62249
Status Offline
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 ==============================================
Floor 20 Posted 2006-12-13 03:00 ·  中国 广东 东莞 电信
银牌会员
★★★
Credits 1,179
Posts 442
Joined 2006-09-09 22:47
19-year member
UID 62249
Status Offline
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.
Floor 21 Posted 2006-12-13 03:03 ·  中国 广东 东莞 电信
银牌会员
★★★
Credits 1,179
Posts 442
Joined 2006-09-09 22:47
19-year member
UID 62249
Status Offline
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.
Floor 22 Posted 2006-12-13 03:08 ·  中国 广东 东莞 电信
银牌会员
★★★
Credits 1,179
Posts 442
Joined 2006-09-09 22:47
19-year member
UID 62249
Status Offline
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
Floor 23 Posted 2006-12-13 03:15 ·  中国 广东 东莞 电信
银牌会员
★★★
Credits 1,179
Posts 442
Joined 2006-09-09 22:47
19-year member
UID 62249
Status Offline
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.
Floor 24 Posted 2006-12-13 03:26 ·  中国 湖北 武汉 电信
版主
★★★★★
Credits 11,386
Posts 4,938
Joined 2006-07-23 17:10
19-year member
UID 59080
Status Offline
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......
Floor 25 Posted 2006-12-13 03:29 ·  中国 湖北 武汉 电信
版主
★★★★★
Credits 11,386
Posts 4,938
Joined 2006-07-23 17:10
19-year member
UID 59080
Status Offline

  Provide so many materials, give extra points to encourage.
Floor 26 Posted 2006-12-13 03:43 ·  中国 广东 东莞 电信
银牌会员
★★★
Credits 1,179
Posts 442
Joined 2006-09-09 22:47
19-year member
UID 62249
Status Offline
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.
Floor 27 Posted 2006-12-13 09:23 ·  中国 北京 海淀区 方正集团
中级用户
★★
Credits 404
Posts 179
Joined 2006-03-30 14:44
20-year member
UID 53056
Status Offline
Hehe, I'm using broadband.
Attachments
新建 BMP 图像.JPG
Floor 28 Posted 2006-12-14 05:48 ·  中国 甘肃 平凉 电信
金牌会员
★★★★
Credits 4,103
Posts 1,744
Joined 2006-01-20 13:00
20-year member
UID 49241
Gender Male
From 甘肃.临泽
Status Offline
Floor 29 Posted 2006-12-14 05:57 ·  中国 北京 联通
银牌会员
★★★
努力做坏人
Credits 1,185
Posts 438
Joined 2006-08-28 12:00
19-year member
UID 61449
From 北京
Status Offline
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.............)
我今后在论坛的目标就是做个超级坏人!!!
Floor 30 Posted 2006-12-14 06:01 ·  中国 湖北 武汉 电信
版主
★★★★★
Credits 11,386
Posts 4,938
Joined 2006-07-23 17:10
19-year member
UID 59080
Status Offline

  9527, you~~
  
  Hiding good stuff and not sharing?!
Forum Jump: