Ergebnis 1 bis 9 von 9

Thema: [Autoit] iTunes silent deinstallieren - Skript läuft unter WinXP nicht durch

  1. #1
    nicht mehr wegzudenken Avatar von xedoc
    Registriert seit
    10.03.07
    Ort
    Berlin
    Beiträge
    324

    [Autoit] iTunes silent deinstallieren - Skript läuft unter WinXP nicht durch

    Hallo zusammen,

    damit ich iTunes vernünftig als Paket verteilen kann möchte ich es vorher sauber entfernen. Dazu verwende ich den unten stehenden AutoIT-Code. Der läuft einwandfrei unter Windows 7 (x86/x64) durch. Unter XP läuft er die Schleife aber nur einmal durch und springt dann komplett aus dem Skript. Hat irgendjemand eine Ahnung woran das liegen könnte?
    Unter uninstall_iTunes_64 wird nur ein anderer Registrypfad verwendet.
    (Skript kann nat. auch verwendet werden um anderen Programme zu entfernen)

    Code:
    #RequireAdmin
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseUpx=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    
    
    
    Dim $SupportedApps = "Apple Application Support,Apple Mobile Device Support,Bonjour,iTunes"
    Dim $MyApps = StringSplit($SupportedApps, ",")
    Dim $InstalledAppsCount = 1
    Dim $Found = 0
    
    While 1
            $SubKey = RegEnumKey("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", $InstalledAppsCount)
    	If @error Then ExitLoop
    
            $DisplayName = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & $SubKey, "DisplayName")
            For $i = 1 To $MyApps[0]
                If StringInStr($DisplayName, $MyApps[$i]) Then
    				$Found += 1
                                     RunWait(@ComSpec & ' /c start /wait MsiExec.exe /X' & $SubKey  & ' /qn /norestart', 'C:', @SW_HIDE)
                                      ;~ Unter XP läuft er hier einmal durch und springt dann raus.
                EndIf
    	Next
           $InstalledAppsCount += 1
    WEnd
    
    If @OSArch = "X64" Then
    	RunWait(@ScriptDir & "\uninstall_iTunes_64.exe")
    EndIf

  2.   Anzeige

     
  3. #2
    SNF-Inventarnr. #9356663 Avatar von Razorblade
    Registriert seit
    14.06.03
    Ort
    Wien
    Beiträge
    2.305

    AW: [Autoit] iTunes silent deinstallieren - Skript läuft unter WinXP nicht durch

    Hmm, der Code schaut an sich ganz gut aus. Ich hab kein Apple-Produkt installiert (und werd es auch nicht tun), daher kann ich nur raten, aber kann es sein dass der Subkey im Uninstall-Tree vllt. aus einer CLSID (z.B.: {26A24AE4-039D-4CA4-87B4-2F83217010FF}) besteht?
    Denn dann würde ich vermuten dass beim aufruf von Comspec es ein Problem mit dem Auskommentieren des Befehlsaufrufs besteht.

    Sprich: Die geschwungenen Klammern versauen den Programmaufruf.

    Ich würde an deiner Stelle mal die Zeile
    Code:
    RunWait(@ComSpec & ' /c start /wait MsiExec.exe /X' & $SubKey  & ' /qn /norestart', 'C:', @SW_HIDE)
    durch
    Code:
    RunWait(@ComSpec & ' /k start /wait MsiExec.exe /X' & $SubKey  & ' /qn /norestart', 'C:', @SW_HIDE)
    ersetzen damit du siehst was abgeht

    Wenn es ein Issue mit den {} Klammern ist, dann kannst du nur probieren diese so zu verwenden:
    ^{ und ^}

    Das ignoriert die Klammern als Operator in Batch und stellt sie als Zeichen dar.

  4. #3
    nicht mehr wegzudenken Avatar von xedoc
    Registriert seit
    10.03.07
    Ort
    Berlin
    Beiträge
    324

    AW: [Autoit] iTunes silent deinstallieren - Skript läuft unter WinXP nicht durch

    Code:
    RunWait(@ComSpec & ' /c start /wait MsiExec.exe /X' & $SubKey  & ' /qn /norestart', 'C:', @SW_HIDE)
    durch
    Code:
    RunWait(@ComSpec & ' /k start /wait MsiExec.exe /X' & $SubKey  & ' /qn /norestart', 'C:', @SW_HIDE)
    Wenn ich das mache bleibt die Kommandozeile offen. ;-)

    Das erste gefundene Produkt läuft ja auch durch, aber dann beendet sich das Skript. So als ob es in der Schleife direkt beendet wird.
    (Wie gesagt, unter Windows 7 läuft es ja durch und deinstallierte alle angegebenen Programme).

    Ich löse es jetzt erstmal "dreckig" und rufe das Skript via Schleife unter Xp halt mehrmals aus.

  5. #4
    SNF-Inventarnr. #9356663 Avatar von Razorblade
    Registriert seit
    14.06.03
    Ort
    Wien
    Beiträge
    2.305

    AW: [Autoit] iTunes silent deinstallieren - Skript läuft unter WinXP nicht durch

    Das die Kommandozeile offen bleibt ist klar, ich dachte nur, dass da vllt. eine Fehlermeldung kommt.

    Weiters hab ich nicht kapiert dass das Script sich beendet. Ich dachte dass da mehrere Aufrufe kommen die nicht ausgeführt werden...

  6. #5
    nicht mehr wegzudenken Avatar von xedoc
    Registriert seit
    10.03.07
    Ort
    Berlin
    Beiträge
    324

    AW: [Autoit] iTunes silent deinstallieren - Skript läuft unter WinXP nicht durch

    Nein, durchläuft exakt einmal die Schleife und fliegt dann irgendwo raus. Rufe ich das Skript unter XP mehrmals hintereinander auf deinstalliert er pro Aufruf ein Produkt. Ich habe keinen blassen Schimmer mehr woran das liegen könnte, rufe jetzt aber das Skript einfach in einer for-Schleife ($MyApps[0]) auf. Das reicht erstmal.

    Unter 7/Vista/2008R2 durchläuft er die Schleife korrekt mehrmals und es reicht ein Aufruf des Skriptes.

  7. #6
    SNF-Inventarnr. #9356663 Avatar von Razorblade
    Registriert seit
    14.06.03
    Ort
    Wien
    Beiträge
    2.305

    AW: [Autoit] iTunes silent deinstallieren - Skript läuft unter WinXP nicht durch

    Hmm...

    <yoda on>
    Ein merkwürdiges dieses Verhalten ist...
    <yoda off>

    ehrlich gesagt, ich kenn mich mit AutoIT nicht so aus, ich arbeite immer mit AutoHotkey (was ja bedingt ein Derrivat von AIT ist), daher kann ich nicht so ad-Hoc sagen ob es ein falscher Parameter oder so ist.


    However, ich hab mich mal ein bisschen mit dem Problem befasst, und weil ich ja praktisch keine Ahnung von AutoIT hab, es in AutoHotkey neu geschrieben.
    Ich hab es nicht unter x64 getestet, denn ich hab gerade keine x64 VM zur hand, aber unter der x86 VM (Win XP) funktioniert es prächtig.
    BTW: Du hast den Apple Software Update nicht mit eingeschlossen was die Deinstallationsroutine angeht.

    Code:
    SetWorkingDir, %A_ScriptDir%
    
    If (!A_IsAdmin) {
    	Run, *RunAs %A_ScriptFullPath%
    	ExitApp
    }
    
    spara = %1%
    If (spara = "/Src") {
    	FileInstall, apple.ahk, apple.ahk, 1
    	ExitApp
    }
    
    reg_default := 32
    targets		:= "Apple Application Support,Apple Mobile Device Support,Bonjour,iTunes"
    msiexec		:= A_Windir "\system32\msiexec.exe"
    msiexec64	:= A_Windir "\syswow32\msiexec.exe"
    
    Loop, 2 {
    	If (!A_Is64bitOS AND A_Index = 2)
    		Continue
    	reg_default *= A_Index
    	SetRegView, %reg_default%
    	Loop, Parse, targets, `,
    		{
    		Loop, HKLM, SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall, 1, 1
    			{
    			If (A_LoopRegSubKey != done) {
    				RegRead, DisplayName, HKLM, %A_LoopRegSubKey%, DisplayName
    				If Errorlevel
    					Continue
    				done := A_LoopRegSubKey
    				If (DisplayName = A_LoopField) {
    					If (reg_default = 32) {
    						ToolTip, Deinstalliere %DisplayName% (x86)
    						RunWait, % (A_Is64bitOS ? msiexec64 : msiexec) " /X" SubStr(A_LoopRegSubkey, 53) " /qn /norestart", C:, Hide
    						Continue
    					}
    					If (reg_default = 64) {
    						ToolTip, Deinstalliere %DisplayName% (x64)
    						RunWait, % msiexec " /X" SubStr(A_LoopRegSubkey, 53) " /qn /norestart", C:, Hide
    						Continue
    					}
    				}
    			}
    		}
    	}
    }
    Ich hoffe, es hilft dir...

    PS.: Wenn du das script modifizierst und neu kompilieren musst, dann verwende die AHK_L Version 1.1.08+
    Angehängte Dateien Angehängte Dateien

  8. #7
    Administrator Avatar von Jim Duggan
    Registriert seit
    18.08.01
    Ort
    -=Zänkisches Bergvolk=-
    Beiträge
    7.567

    AW: [Autoit] iTunes silent deinstallieren - Skript läuft unter WinXP nicht durch

    Code:
    If @OSArch = "X64" Then
    	RunWait(@ScriptDir & "\uninstall_iTunes_64.exe")
    EndIf

    Vieleicht kennt XP die Abfrage nicht. Versuche mal:
    Code:
    If @OSversion = "WIN_7" Then
    	RunWait(@ScriptDir & "\uninstall_iTunes_64.exe")
    EndIf
    Oder diesen Abschnitt komplett weglassen unter XP. Denke doch das Du XP 32Bit hast.

  9. #8
    nicht mehr wegzudenken Avatar von xedoc
    Registriert seit
    10.03.07
    Ort
    Berlin
    Beiträge
    324

    AW: [Autoit] iTunes silent deinstallieren - Skript läuft unter WinXP nicht durch

    Leider ist das mehr als 1 Rechner. Rauskommen soll dabei ein Paket welches ich per OCS verteilen kann.

    @Razorblade: Werde ich bei Gelegenheit mal mit AHK versuchen. Das Software Update hatte ich bisher nie mitinstalliert, habe es aber mal mit aufgenommen. Man weiß ja nie.

  10. #9
    SNF-Inventarnr. #9356663 Avatar von Razorblade
    Registriert seit
    14.06.03
    Ort
    Wien
    Beiträge
    2.305

    AW: [Autoit] iTunes silent deinstallieren - Skript läuft unter WinXP nicht durch

    @xedoc: Habs nur erwähnt weil ich vorher ja zum testen iTunes unter XP installiert hab und da hat es sich automatisch mitinstalliert...

Ähnliche Themen

  1. Altes Spiel läuft unter Windows XP nicht
    Von Akane12 im Forum Allgemeine Computerfragen
    Antworten: 10
    Letzter Beitrag: 21.04.09, 18:20
  2. [Scanner] Scanmagic 4800P läuft nicht unter XP
    Von smiley2925 im Forum Hardware-Forum
    Antworten: 1
    Letzter Beitrag: 02.01.05, 20:57
  3. BPFTP läuft nicht unter MS 2003 Server?
    Von Lionz im Forum BPFTP-Server 2.x
    Antworten: 8
    Letzter Beitrag: 26.12.03, 10:50
  4. Läuft Ken!Dsl nicht unter XP ?
    Von SkyMaster im Forum Alles rund um Windows
    Antworten: 5
    Letzter Beitrag: 29.04.03, 14:23
  5. [Office] Install Office2000 läuft auf best. PCs nicht durch !
    Von macleod2 im Forum Alles rund um Windows
    Antworten: 4
    Letzter Beitrag: 19.06.02, 09:16

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •