Pytanie : Znakomity uninstall pismo od Zoofan. Potrzebować sposób ono maszyna lub bieg wieloskładnikowy maszyna w tym samym czasie.

Cześć,

Excellent uninstall pismo od Zoofan. Potrzebować sposób ono/>Sharath
lub bieg wieloskładnikowy maszyna przy the ten sam time.
Rather ten sam jeden po tym jak the other

Can jeden pomoc z ten change

REgards
Sharath
(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:
36:
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 Wyraźny
Const ForReading = (1), ForWriting = 2, ForAppending = 3
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = (0)
Ciemnawy objFso
Ciemnawy objWshShell
Ciemnawy objOutputFile
 
Ciemnawy strCurPath
Ciemnawy strPcListFile
Ciemnawy strUnAppFile
Ciemnawy strResultsFile
Ciemnawy strResultsTime
Ciemnawy strResultsDate
Ciemnawy strPCName
Ciemnawy strTargetapp
Ciemnawy strConnectionTest
Ciemnawy strReadPCfile
Ciemnawy strReadAppfile
Ciemnawy strGetRemApps
Ciemnawy strCompApps
Ciemnawy strUnistallRet
 
Ciemnawy arrAppSplit
Ciemnawy arrPcnames ()
Ciemnawy arrUninstallApps ()
Ciemnawy arrPCappList ()
Ciemnawy arrTargetApps ()
 
      Ustalony objFso = CreateObject ("Scripting.FileSystemObject")
      Ustalony objWshShell = WScript.CreateObject ("WScript.Shell")
      strCurPath = CreateObject ("Scripting.FileSystemObject") .GetAbsolutePathName (" .")
	  strPcListFile = InputBox ("Zadawalać wchodzić do the pełny ścieżka i kartoteka" & VbCrLf & "imię the kartoteka z the komputerowy imię. ", "Uninstall pilot apps.")
	Jeżeli strPcListFile = "" Wtedy
		MsgBox "Ty musieć filename! ", vbOKOnly, "Uninstall daleki apps."
		WScript.Quit ((0))
		ElseIf Nie objFso.FileExists (strPcListFile) Wtedy
		MsgBox "Ty musieć ważny pełny ścieżka i kartoteka - imię the kartoteka z the komputerowy imię! ", vbOKOnly, "Uninstall daleki apps."
		WScript.Quit ((0))               
	Inny 
		strUnAppFile = InputBox ("Zadawalać wchodzić do the pełny ścieżka i kartoteka" & VbCrLf & "imię the kartoteka z the podaniowy imię. ", "Uninstall pilot apps.")
			Jeżeli strUnAppFile = "" Wtedy
				MsgBox "Ty musieć filename! ", vbOKOnly, "Uninstall daleki apps."
				WScript.Quit ((0))
				ElseIf Nie objFso.FileExists (strUnAppFile) Wtedy
				MsgBox "Ty musieć ważny pełny ścieżka i kartoteka - imię the kartoteka z the podaniowy imię! ", vbOKOnly, "Uninstall daleki apps."
				WScript.Quit ((0))               
			Inny
				strResultsDate = Zamieniać (FormatDateTime (data (), vbshortdate), "/", "-")
				strResultsTime = Zamieniać (Zamieniać (FormatDateTime (teraz (), vbLongtime), ": ", "-"), "", "")
				strResultsFile = strCurPath & "\" & strResultsTime & "_" & strResultsDate & ".csv"
					Jeżeli objFSO.FileExists (strResultsFile) Wtedy
						ObjFSO.deleteFile (strResultsFile)
					Inny
						Ustalony objOutputFile = objFso.CreateTextFile (strResultsFile)
						objOutputFile.Close  						    
					Kończyć Jeżeli	
				Ustawiać objOutputFile = objFso.OpenTextFile (strResultsFile, ForWriting, TristateUseDefault)
				strReadPCfile = readFileToArray (strPcListFile, arrPcnames)
				strReadAppfile = readFileToArray (strUnAppFile, arrUninstallApps)									            
					Jeżeli strReadPCfile <> "uzupełniać" Wtedy
						objOutputFile.WriteLine strReadPCfile
						objOutputFile.Close
						WScript.Quit ((0))
					ElseIf strReadAppfile <> "uzupełniać" Wtedy
						objOutputFile.WriteLine strReadAppfile
						objOutputFile.Close
						WScript.Quit ((0))								
					Inny
						Dla ArrPcnames strPCName W arrPcnames
							ReDim arrPCappList ((0))
							strConnectionTest = IsServerOn (strPCName)
							Jeżeli strConnectionTest <> "online" Wtedy
								objOutputFile.WriteLine strPCName & ", Błąd podczas gdy łączyć: " & strConnectionTest
							Inny
								ReDim arrPCappList ((0))
								strGetRemApps = getRemoteApps (strPCName, arrPCappList)
								Jeżeli strGetRemApps <> "gotlist" Wtedy
									objOutputFile.WriteLine strPCName & ", Błąd podczas gdy dostawać daleki podaniowy lista: " & strGetRemApps
								Inny
									ReDim arrTargetApps ((0))
									strCompApps = compareArray (arrUninstallApps, arrPCappList, arrTargetApps) 										 
									Jeżeli strCompApps <> "uzupełniać" Wtedy
										objOutputFile.WriteLine strPCName & ", Błąd podczas gdy porównywać podaniowy lista: " & strCompApps
									Inny
										Jeżeli arrTargetApps ((0)) <> "noAppsToDo" Wtedy
											Dla ArrTargetApps strTargetapp W arrTargetApps
											arrAppSplit = Rozłam (strTargetapp, ""*u*" ")
											strUnistallRet = uninstallTarget (strPCName, strTargetapp)																
												Jeżeli strUnistallRet <> "uninstalled" Wtedy
													objOutputFile.WriteLine strPCName & ", Błąd podczas gdy uninstalling" & arrAppSplit ((0))
												Inny
													objOutputFile.WriteLine strPCName & "," & arrAppSplit ((0)) & "pomyślnie uninstalled"
												Kończyć Jeżeli																
											Następnie
										Inny
											objOutputFile.WriteLine strPCName & ", Żadny zastosowanie uninstall."
										Kończyć Jeżeli															
									Kończyć Jeżeli
								Kończyć Jeżeli	
							Kończyć Jeżeli
						Następnie														
						objOutputFile.Close
					Kończyć Jeżeli
			Kończyć Jeżeli                                                
	Kończyć Jeżeli
WScript.Quit ((0))          
 
Intymny Funkcja readFileToArray (strTxtFile, arrname ())
Err.Clear
Na Błąd Życiorys Następnie
      Ciemnawy intFuncErr, intFuncLines
      Ciemnawy objFuncTxtLines, objFuncReadFile, objFuncFso      
            Ustalony objFuncFso = CreateObject ("Scripting.FileSystemObject")
            Ustalony objFuncTxtLines = objFuncFso.GetFile (strTxtFile)
            Ustalony objFuncReadFile = objFuncTxtLines.OpenAsTextStream (ForReading, TristateUseDefault)
                  Do objFuncReadFile.AtEndOfStream
                        ReDim Prezerwa arrname (intFuncLines)
                        arrname (intFuncLines) = objFuncReadFile.ReadLine
                        intFuncLines = intFuncLines + (1)
                  Pętla
            objFuncReadFile.Close
            Ustalony objFuncFso = Nic
            Ustalony objFuncTxtLines = Nic
            Ustalony objFuncReadFile = ObjFuncReadFile                    
		Jeżeli Err.Number <> (0) Wtedy
			readFileToArray = "Błąd czytanie kartoteka: " & strTxtFile & VbCrLf & "Opis: " & Err.Description		
		Inny
			readFileToArray = "uzupełniać"
		Kończyć Jeżeli
  Na Błąd Rozpoczynający (0)
Końcówka Funkcja
Funkcja getRemoteApps (strRemotePC, arrname ())
Err.Clear
Na Błąd Życiorys Następnie
Ciemnawy objFuncWMIService
Ciemnawy colFuncSoftware
Ciemnawy objFuncSoftware
Ciemnawy intFuncLines
        Ustalony objFuncWMIService = GetObject ("winmgmts: " & "{impersonationLevel=impersonate}! \ \" & strRemotePC & "\ korzeń \ cimv2")
        Ustalony colFuncSoftware = objFuncWMIService.ExecQuery ("WYBIÓRKA * OD Win32_Product")   
                Jeżeli colFuncSoftware.Count > (0) Wtedy
                        Dla ColFuncSoftware objFuncSoftware w colFuncSoftware                     		
                      			arrname (intFuncLines) = objFuncSoftware.Name & ""*u*"" & objFuncSoftware.IdentifyingNumber
                      			intFuncLines = intFuncLines + (1)
                      			ReDim Prezerwa arrname (intFuncLines)
                        Następnie
                Kończyć Jeżeli
        Jeżeli Err.Number <> (0) Wtedy
              getRemoteApps = Err.Description
        Inny
              getRemoteApps = "gotlist"
        Kończyć Jeżeli		                
      Na Błąd Rozpoczynający (0)                
Końcówka Funkcja
Funkcja IsServerOn (strserver)                        
      Err.Clear
      Na Błąd Życiorys Następnie
      Ciemnawy Testme
      Ciemnawy strTestConn
            Ustalony Testme = GetObject ("winmgmts: /" & strserver & "/root/cimv2")
                  Ustalony strTestConn = GetObject ("winmgmts: /" & strserver & "/root/default: StdRegProv")
                        Jeżeli Err.Number <> (0) Wtedy
                              IsServerOn = Err.Description
                        Inny
                              IsServerOn = "online"
                        Kończyć Jeżeli
      Na Błąd Rozpoczynający (0)
Końcówka Funkcja
Intymny Funkcja compareArray (arrOne (), arrTwo (), arrReturn ())
Err.Clear
Na Błąd Życiorys Następnie
Ciemnawy strArrElement1
Ciemnawy strArrElement2
Ciemnawy intFuncLoop
	intFuncLoop = (0)
	Dla ArrOne strArrElement1 W arrOne
		Dla ArrTwo strArrElement2 W arrTwo
			Jeżeli strArrElement1 = strArrElement2 Wtedy
			ReDim Prezerwa arrReturn (intFuncLoop)
				arrReturn (intFuncLoop) = strArrElement2
			intFuncLoop =intFuncLoop + (1)
			Kończyć Jeżeli
		Następnie
	Następnie
	Jeżeli arrReturn ((0)) = "" Wtedy arrReturn ((0)) = "noAppsToDo"
    Jeżeli Err.Number <> (0) Wtedy
          compareArray = Err.Description
    Inny
          compareArray = "uzupełniać"
    Kończyć Jeżeli	
Na Błąd Rozpoczynający (0)	
Końcówka Funkcja
Intymny Funkcja uninstallTarget (strComputer, strAppInfo)
Err.Clear
Na Błąd Życiorys Następnie
Ciemnawy objFuncWMIService
Ciemnawy colFuncSoftware
Ciemnawy objFuncSoftware
	strAppInfo = Rozłam (strAppInfo, ""*u*" ")
	Ustalony objFuncWMIService = GetObject ("winmgmts: " & "{impersonationLevel=impersonate}! \ \" & strComputer & "\ korzeń \ cimv2")
	Ustalony colFuncSoftware = objFuncWMIService.ExecQuery ("Wybiórka * od Win32_Product Dokąd Imię = "" & strAppInfo ((0)) & "" I IdentifyingNumber = ""& strAppInfo (1) &"" ")	
		Dla ColFuncSoftware objFuncSoftware w colFuncSoftware
		    objFuncSoftware.Uninstall ()
		Następnie
	    Jeżeli Err.Number <> (0) Wtedy
          uninstallTarget = Err.Description
    	Inny
          uninstallTarget = "uninstalled"
    	Kończyć Jeżeli			
Na Błąd Rozpoczynający (0)			
Końcówka Funkcja

Odpowiedź : Znakomity uninstall pismo od Zoofan. Potrzebować sposób ono maszyna lub bieg wieloskładnikowy maszyna w tym samym czasie.

Rozmieszczenie być dosyć dobry artykuł na iTunes rozmieszczenie.  

I nigdy mieć emisyjny bieg .bat kartoteka od the "Rozkaz Linia" SCCM program.  Być może using .bat zamiast .cm D pomagać twój zagadnienie.

"Program: iTunes 9.2 Aktualizować z wyjście kod (0)" wydawać się że the SCCM klient być sprawnie i the kartoteka.  W the windows-noob.com NIETOPERZ przykład the kod zawsze powrót (0)" (który być w "wyjście (0)").  W Ten Sposób, nawet jeśli jeden the MSIs fail the NIETOPERZ kartoteka zawsze wracać "sukces wiadomość the SCCM klient.

Być być chytry zagadnienie i the jedyny sposób I być sprawnie w the zagadnienie być być the MSI instalować.

Na przykład "msiexec /i iTunes 9.1.1.12 .msi /qn /norestart /log c:\isdept\iTunes9.1 .1.12.log" tworzyć plik-dziennik gdy the MSI instalować.

Także,

UserContext = "NT WŁADZA \ \ SYSTEM";  insynuować że the SCCM klient wykonywać the nietoperz/cmd kartoteka jako the lokalny system użytkownik.  Ono być nieprawdopodobny że ten użytkownik mieć dostęp the kartoteka jeżeli być na UNC ścieżka (gdy the windows-noob.com artykuł sugerować).

Inne rozwiązania  
 
programming4us programming4us