1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
|
Option ausdrücklich
Const ForReading = 1, ForWriting = 2, ForAppending = 3
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
Schwaches objFso
Schwaches objWshShell
Schwaches objOutputFile
Schwaches strCurPath
Schwaches strPcListFile
Schwaches strUnAppFile
Schwaches strResultsFile
Schwaches strResultsTime
Schwaches strResultsDate
Schwaches strPCName
Schwaches strTargetapp
Schwaches strConnectionTest
Schwaches strReadPCfile
Schwaches strReadAppfile
Schwache strGetRemApps
Schwache strCompApps
Schwaches strUnistallRet
Schwaches arrAppSplit
Schwache arrPcnames ()
Schwache arrUninstallApps ()
Schwaches arrPCappList ()
Schwache arrTargetApps ()
objFso = CreateObject („Scripting.FileSystemObject“) einstellen
objWshShell = WScript.CreateObject („WScript.Shell“) einstellen
strCurPath = CreateObject („Scripting.FileSystemObject“) .GetAbsolutePathName (“ .")
strPcListFile = InputBox („den vollen Weg und die Akte“ u. das VbCrLf u. „der Name bitte betreten der Akte mit den Computerbezeichnungen. “, „Direktübertragung apps.") deinstallieren
Wenn strPcListFile = "" dann
MsgBox „Sie müssen einen Dateinamen eintragen! “ vbOKOnly „Fernapps deinstallieren.“
WScript.Quit (0)
ElseIf nicht objFso.FileExists (strPcListFile) dann
MsgBox „Sie müssen einen gültigen vollen Weg und einen Dateinamen der Akte mit den Computerbezeichnungen eintragen! “ vbOKOnly „Fernapps deinstallieren.“
WScript.Quit (0)
Sonst
strUnAppFile = InputBox („den vollen Weg und die Akte“ u. das VbCrLf u. „der Name bitte betreten der Akte mit den Anwendungsnamen. “, „Direktübertragung apps.") deinstallieren
Wenn strUnAppFile = "" dann
MsgBox „Sie müssen einen Dateinamen eintragen! “ vbOKOnly „Fernapps deinstallieren.“
WScript.Quit (0)
ElseIf nicht objFso.FileExists (strUnAppFile) dann
MsgBox „Sie müssen einen gültigen vollen Weg und einen Dateinamen der Akte mit den Anwendungsnamen eintragen! “ vbOKOnly „Fernapps deinstallieren.“
WScript.Quit (0)
Sonst
strResultsDate = ersetzen (FormatDateTime (Datum (), vbshortdate), „/“, „-“)
strResultsTime = ersetzen (ersetzen (FormatDateTime (jetzt (), vbLongtime), „: “, „-“), „„, "")
strResultsFile = strCurPath u. „\“ u. strResultsTime u. „_“ u. strResultsDate u. „.csv“
Wenn objFSO.FileExists (strResultsFile) dann
ObjFSO.deleteFile (strResultsFile)
Sonst
Gesetztes objOutputFile = objFso.CreateTextFile (strResultsFile)
objOutputFile.Close
Beenden wenn
objOutputFile einstellen = objFso.OpenTextFile (strResultsFile, ForWriting, TristateUseDefault)
strReadPCfile = readFileToArray (strPcListFile, arrPcnames)
strReadAppfile = readFileToArray (strUnAppFile, arrUninstallApps)
Wenn strReadPCfile, „schloß“ <> dann ab
objOutputFile.WriteLine strReadPCfile
objOutputFile.Close
WScript.Quit (0)
ElseIf strReadAppfile <> „dann abgeschlossen“
objOutputFile.WriteLine strReadAppfile
objOutputFile.Close
WScript.Quit (0)
Sonst
Für jedes strPCName in den arrPcnames
ReDim arrPCappList (0)
strConnectionTest = IsServerOn (strPCName)
Wenn strConnectionTest <> „online“ dann
objOutputFile.WriteLine strPCName u. „, Störung, bei der Verbindung: “ u. strConnectionTest
Sonst
ReDim arrPCappList (0)
strGetRemApps = getRemoteApps (strPCName, arrPCappList)
Wenn strGetRemApps <> „gotlist“ dann
objOutputFile.WriteLine strPCName u. „, Störung, beim Erhalten der Fernanwendungsliste: “ u. strGetRemApps
Sonst
ReDim arrTargetApps (0)
strCompApps = compareArray (arrUninstallApps, arrPCappList, arrTargetApps)
Wenn strCompApps <> dann „abschloß“
objOutputFile.WriteLine strPCName u. „, Störung, beim Vergleichen der Anwendungsliste: “ u. strCompApps
Sonst
Wenn arrTargetApps (0) <> „noAppsToDo“ dann
Für jedes strTargetapp in den arrTargetApps
arrAppSplit = spaltete auf sich (strTargetapp, „„*u*“ ")
strUnistallRet = uninstallTarget (strPCName, strTargetapp)
Wenn strUnistallRet <> dann „deinstallierte“
objOutputFile.WriteLine strPCName u. „, Störung, beim Deinstallieren“ u. arrAppSplit (0)
Sonst
objOutputFile.WriteLine strPCName u. „,“ u. arrAppSplit (0) u. „wurden deinstalliert erfolgreich“
Beenden wenn
Zunächst
Sonst
objOutputFile.WriteLine strPCName u. „, keine zu deinstallieren Anwendungen.“
Beenden wenn
Beenden wenn
Beenden wenn
Beenden wenn
Zunächst
objOutputFile.Close
Beenden wenn
Beenden wenn
Beenden wenn
WScript.Quit (0)
Private Funktion readFileToArray (strTxtFile, arrname ())
Err.Clear
Auf Störungs-Zusammenfassung zunächst
Schwaches intFuncErr, intFuncLines
Schwache objFuncTxtLines, objFuncReadFile, objFuncFso
objFuncFso = CreateObject („Scripting.FileSystemObject“) einstellen
Die objFuncTxtLines = objFuncFso.GetFile (strTxtFile) einstellen
objFuncReadFile einstellen = objFuncTxtLines.OpenAsTextStream (ForReading, TristateUseDefault)
Bis objFuncReadFile.AtEndOfStream tun
ReDim Konserve arrname (intFuncLines)
arrname (intFuncLines) = objFuncReadFile.ReadLine
intFuncLines = intFuncLines + 1
Schleife
objFuncReadFile.Close
objFuncFso einstellen = nichts
objFuncTxtLines einstellen = nichts
objFuncReadFile einstellen = nichts
Wenn Err.Number <> 0 dann
readFileToArray = „Störungsleseakte: “ u. strTxtFile u. VbCrLf u. „Beschreibung: “ U. Err.Description
Sonst
readFileToArray = „schloß“ ab
Beenden wenn
Auf Störung Goto- 0
Enden-Funktion
Funktion getRemoteApps (strRemotePC, arrname ())
Err.Clear
Auf Störungs-Zusammenfassung zunächst
Schwaches objFuncWMIService
Schwaches colFuncSoftware
Schwaches objFuncSoftware
Schwache intFuncLines
objFuncWMIService = GetObject einstellen („winmgmts: “ u. „{impersonationLevel=impersonate}! \ \“ u. strRemotePC u. „\ Wurzel \ cimv2“)
colFuncSoftware = objFuncWMIService.ExecQuery einstellen („* VON Win32_Product VORWÄHLEN“)
Wenn colFuncSoftware.Count > 0 dann
Für jedes objFuncSoftware im colFuncSoftware
arrname (intFuncLines) = objFuncSoftware.Name u. „„*u*““ u. objFuncSoftware.IdentifyingNumber
intFuncLines = intFuncLines + 1
ReDim Konserve arrname (intFuncLines)
Zunächst
Beenden wenn
Wenn Err.Number <> 0 dann
getRemoteApps = Err.Description
Sonst
getRemoteApps = „gotlist“
Beenden wenn
Auf Störung Goto- 0
Enden-Funktion
Funktion IsServerOn (strserver)
Err.Clear
Auf Störungs-Zusammenfassung zunächst
Schwaches Testme
Schwaches strTestConn
Testme = GetObject einstellen („winmgmts: /“ u. strserver u. „/root/cimv2“)
strTestConn = GetObject einstellen („winmgmts: /“ u. strserver u. „/root/default: StdRegProv“)
Wenn Err.Number <> 0 dann
IsServerOn = Err.Description
Sonst
IsServerOn = „online“
Beenden wenn
Auf Störung Goto- 0
Enden-Funktion
Private Funktion compareArray (arrOne (), arrTwo (), arrReturn ())
Err.Clear
Auf Störungs-Zusammenfassung zunächst
Schwaches strArrElement1
Schwaches strArrElement2
Schwaches intFuncLoop
intFuncLoop = 0
Für jedes strArrElement1 im arrOne
Für jedes strArrElement2 im arrTwo
Wenn strArrElement1 = strArrElement2 dann
ReDim Konserve arrReturn (intFuncLoop)
arrReturn (intFuncLoop) = strArrElement2
intFuncLoop =intFuncLoop + 1
Beenden wenn
Zunächst
Zunächst
Wenn arrReturn (0) = "" dann arrReturn (0) = „noAppsToDo“
Wenn Err.Number <> 0 dann
compareArray = Err.Description
Sonst
compareArray = „schloß“ ab
Beenden wenn
Auf Störung Goto- 0
Enden-Funktion
Privates Funktion uninstallTarget (strComputer, strAppInfo)
Err.Clear
Auf Störungs-Zusammenfassung zunächst
Schwaches objFuncWMIService
Schwaches colFuncSoftware
Schwaches objFuncSoftware
strAppInfo = spaltete auf sich (strAppInfo, „„*u*“ ")
objFuncWMIService = GetObject einstellen („winmgmts: “ u. „{impersonationLevel=impersonate}! \ \“ u. strComputer u. „\ Wurzel \ cimv2“)
colFuncSoftware = objFuncWMIService.ExecQuery einstellen („* von Win32_Product vorwählen in dem Name = „“ u. strAppInfo (0) u. „“ und IdentifyingNumber = „„u. strAppInfo (1) u.““ ")
Für jedes objFuncSoftware im colFuncSoftware
objFuncSoftware.Uninstall ()
Zunächst
Wenn Err.Number <> 0 dann
uninstallTarget = Err.Description
Sonst
uninstallTarget = „deinstallierte“
Beenden wenn
Auf Störung Goto- 0
Enden-Funktion
|