Paket läuft mehrfach durch

Moderator: MVogt

Benutzeravatar
heinrichmi
Beiträge: 210
Registriert: 12. Nov 2009, 10:13
Wohnort: Würzburg
Kontaktdaten:

Paket läuft mehrfach durch

Beitrag von heinrichmi » 15. Feb 2010, 16:43

Hallo, habe ein Lenovo Treiber/Tools Paket für Win7 gebastelt.

Es läuf leider mehrfach durch.
Könnt ihr sehen warum das der Fall ist? Danke!

PS: Die beiden deltree Befehle zeigen auch keine Wirkung.

[SetupInfo]
Author =Michael Heinrich
CreationDate =09.02.2010 14:00:46
InventoryID =
Description =
Method =
Tested on =
Dependencies =
Command line options =/S2
Last Change =
Build =

[VarDefInfo]
; <Variable>, <Type>, <Allow>

[Setup]
Version=10.5
ShowCaption=1
BlockInput=0
Platform=x86

[Requirements]

[Application]
ProductName=ThinkPad X200T Treiber
DeveloperName=Lenovo
Version=1.0
Revision=01
SetupName=%ProductName% %Version% %SetupWizard%
Text1="%ProductName% %Version%", Arial, 30, , 00FFFF, 4, , LEFT BOLD ITALIC
Text2="%DeveloperName%", Arial, 24, , 00FFFF, 4, , LEFT BOLD ITALIC
Text8="%Company%", Arial, 18, , 00FFFF, 4, 10, RIGHT BOLD ITALIC
Text9="%InstallationFor% %WindowsUser%", Arial, 16, , 007F00, 4, -18, BOTTOM ITALIC LEFT
BackgroundColor=FF0000,000000
CopyDialogRect=0%, 0%, 100%, 100%, HCENTER VCENTER
UserKeyName=%DeveloperName%\%ProductName%
MachineKeyName=%DeveloperName%\%ProductName%\%Version%
UninstallKeyName=%DeveloperName% %ProductName% %Version%
UninstallDisplayName=%ProductName% %Version%
UninstallString=%ReinstallString% /U
ReinstallString="%CommonSetupDir%\Setup.exe" "%App%\%SetupInfDir%\Setup.inf"
ReinstallMode=1
SrcDir=..
ApplicationDir=%ProgramFilesDir%\%ProductName%
SetupInfDir=Install
AskUninstallOld=1
ShellLinks=1
CommonShellLinks=1
CreateUnresolvableShellLinks=1
UseStringSection=Strings:09
UseSysStringSection=SysStrings:09
DateWarning=1
SizeWarning=1
Reboot=0
PreventExternalReboot=1
StartServicesOnReboot=0
CallTimeOut=3600
AbortAfterCallTimeOut=1
DisableCancelButton=1
ShowEndMessage=1
EndMessage=%EndMessageDesc%


[Strings:07]
Disk1=Installationsmedium 1
EndMessageDesc=Die Installation wurde erfolgreich abgeschlossen!
ErrorLogMessage=Die Installation/Deinstallation wurde mit einer Fehlermeldung abgebrochen!
InstallationFor=Installation für:
InstallerDesc=Dienstprogramm zum Installieren einzelner Komponenten.
InstallerName=Installationsprogramm
SetupWizard=Installations-Assistent
Uninstallation=deinstallieren
ErrorText=Fehler
CallingText=beim Aufruf von

[Strings:09]
Disk1=Installation media 1
EndMessageDesc=Installation was completed successfully!
ErrorLogMessage=The installation/uninstallation aborted with an error message!
InstallationFor=Installation for:
InstallerDesc=Service program to install single components.
InstallerName=Setup program
SetupWizard=Installation Wizard
Uninstallation=Uninstallation
ErrorText=Error
CallingText=launching

[SysStrings:07]
Users=Benutzer

[SysStrings:09]
Users=Users

[Environment]
CommonSetupDir=%CommonFilesDir%\Setup%SetupBits%
V_MachineValuesPath=%SoftwareDepotServerName%\Values$\MachineValues\%DomainName%
V_UserValuesPath=%HKLM,"Software\matrix42\Software Depot","HomeServer"%\Values$\UserValues\%UserDomain%

; Maschinenabhängige Variablen
; machine dependent variables
;VM_<Variable>=%%%V_MachineValuesPath%\%ComputerName%.ini,%ComputerName%,<Variable>%%

; Userabhängige Variablen
; user dependent variables
;VU_<Variable>=%%%V_UserValuesPath%\%WindowsUser%.ini,%WindowsUser%,<Variable>%%

; !!! Setzen der entsprechenden ReplaceEnv Befehle für die Variablen im Abschnitt [Product] nicht vergessen!!!
; !!! Don't forget to set the appropriate ReplaceEnv instructions for the variables in the section [Product]!!!

[Encryption]

[Disks]
1=%Disk1%

[Options]
Installer = %InstallerName%, COPYALWAYS, Installer, "%InstallerDesc%"
Product = %ProductName%, COPYALWAYS, Product, "%ProductDesc%"

[OptionDependencies]

[OptionGroups]

[Installer]
1:..\..\..\..\User\Setup.exe, %CommonSetupDir%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
1:..\..\..\..\User\SetupDeu.chm, %CommonSetupDir%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
1:..\..\..\..\User\SetupEnu.chm, %CommonSetupDir%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
1:..\..\..\..\User\Mx42SynSem.dll, %System%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP WINDOWS32, 0
1:..\..\..\..\User\x64\Mx42SynSem.dll, %System%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP WINDOWS64, 0
1:%SetupInfDir%\Setup.inf, , NORMAL, 0
1:%Temp%\Setup64.exe, %CommonSetupDir%\Setup.exe, OPTIONAL NOSIZEWARNING SETUP ALWAYS WINDOWS64, 0

[FileCheckMachine]
ReplaceEnv V_MachineValuesPath
If DoesFileExist ("%V_MachineValuesPath%\%ComputerName%.ini") == "0" Then "FileIsntThere" EndIf

[FileCheckClient]
ReplaceEnv V_UserValuesPath
If "%UserDomain%" <> "%ComputerName%" Then "CheckClientFile" EndIf

[CheckClientFile]
If DoesFileExist ("%V_UserValuesPath%\%WindowsUser%.ini") == "0" Then "FileIsntThere" EndIf

[FileIsntThere]
ErrorLogMsg Values$\MachineValues\%DomainName%\%ComputerName%.ini or Values$\UserValues\%UserDomain%\%WindowsUser%.ini not found!
Abort


[Product]
deltree "%CommonStartMenu%\NetWaiting"
deltree "%CommonStartMenu%\Intel(R) Management and Security"
;#FileCheckMachine, MACHINE
;#FileCheckClient, CLIENT
;ReplaceEnv <Variable>

#Set:Product
#Set:Installation, DONTDELETE
#Set:Deinstallation, DELETE
#Reg:OnUninstallProduct, DELETE
#Reg:Product
#Ini:Product
#Security:Product

[Set:Product]

[SET:Installation]
AddMeter 10
Call "%Src%\Ericsson3507gBroadband\setup.exe" /S
AddMeter 20
Call "%Src%\HotkeyFeaturesIntegration\setup.exe" /S
AddMeter 30
Call "%Src%\IntelChipsetSupport\infinst_autol.exe" /S
AddMeter 40
Call "%Src%\IntelGM45DisplayDriver\Setup.exe" /S
AddMeter 50
Call "%Src%\SystemInterfaceDriver\Setup.exe" /S
AddMeter 60
Call "%Src%\PowerManager\Setup.exe" /S
AddMeter 70
Call "%Src%\TabletShortcutMenu\Setup.exe" /S /SMS
AddMeter 75
Call "%Src%\IntelAMT4.2\Setup.exe" /S
AddMeter 80
Call "%Src%\ModemAdapter\Setup.exe" -S
AddMeter 90
Call "%Src%\IntelAMT4.2LMS-SQL\Setup.exe" /S
AddMeter 95
Call "%Src%\ConexantAudioSoftware\Setup.exe" /S

Call "%Src%\PowerManagementDriver\Setup.exe" /S /SMS
AddMeter 100
If %ErrorLevel% <> "0" Then "SET:InstallationError" EndIf

[SET:Deinstallation]

[SET:Deinstallation2]

[Reg:OnUninstallProduct]

[Reg:Product]

[Ini:Product]

[Security:Product]

[Shell:Product]

[SET:InstallationError]

[SET:DeInstallationError]
Michael Heinrich

MIWE Michael Wenz GmbH
Bild

Empirum 19.0.0 UEM mit PM, M42-Cloud, PB, VM-Hosting, Citrix Farm Deployment, ServiceStore 9.0.4

Walter_Schulz
Beiträge: 876
Registriert: 17. Dez 2004, 12:29
Kontaktdaten:

Beitrag von Walter_Schulz » 15. Feb 2010, 18:18

Probleme mit "deltree" und den Eintraegen im Startmenue haben eine lange Tradition in Empirum.

Mal mit
callhidden cmd /c rd "%commonstartmenu%\NetWaiting" /S /Q
probieren.

Ciao!
Walter Schulz

Benutzeravatar
heinrichmi
Beiträge: 210
Registriert: 12. Nov 2009, 10:13
Wohnort: Würzburg
Kontaktdaten:

Beitrag von heinrichmi » 16. Feb 2010, 07:04

Hallo Walter vielen Dank für den super Tipp!

Auch, was mir noch aufgefallen ist, der Addmeter funktioniert auch leider nicht.
Michael Heinrich

MIWE Michael Wenz GmbH
Bild

Empirum 19.0.0 UEM mit PM, M42-Cloud, PB, VM-Hosting, Citrix Farm Deployment, ServiceStore 9.0.4

imbas
Beiträge: 60
Registriert: 07. Mai 2008, 08:23
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von imbas » 16. Feb 2010, 11:38

Hai,

was heisst der AddMeter funktioniert nicht? AddMeter addiert selbstständig, d.h. AddMeter 20 und danach AddMeter 30 gibt einen Fortschrittsbalken bei 50%.

Julia
Beiträge: 384
Registriert: 31. Aug 2007, 13:56
Wohnort: Essen
Kontaktdaten:

Beitrag von Julia » 16. Feb 2010, 11:47

Hallo Walter,

ich habe gerade mal den callhidden-Befehl als Alternative zu deltree ausprobiert, weil ich bei einzelnen Pakete da auch ab und zu Probleme mit habe.
Aber leider funktioniert das so bei mir nicht. Das Verzeichnis ist zwar anschließend leer, aber der Ordner selbst wird nicht gelöscht. Und als Ergebnis bekommen ich einen Fehler 32. :(

Hat jemand ein Idee, wie oder womit man zuverlässig einen Ordner samt Inhalt löschen kann?

Gruß Julia

Walter_Schulz
Beiträge: 876
Registriert: 17. Dez 2004, 12:29
Kontaktdaten:

Beitrag von Walter_Schulz » 16. Feb 2010, 12:07

net helpmsg 32:
Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird.

Sieht mal nicht nach einem Empirum-Problem aus. Mehr Angaben, bitte.

Ciao!
Walter Schulz

Julia
Beiträge: 384
Registriert: 31. Aug 2007, 13:56
Wohnort: Essen
Kontaktdaten:

Beitrag von Julia » 16. Feb 2010, 13:04

Es scheint ein Problem vom cmd-Befehl zu sein, aber mir ist nicht klar warum.

Ziel soll es sein im Startmenü einen Ordner zu löschen.
Der Befehl sieht zur Zeit so aus:
callhidden cmd.exe /c rd /S /Q "%CommonPrograms%IrfanView"

Auch andere Varianten wie z.B.
callhidden cmd.exe /c rd "%CommonPrograms%IrfanView" /S /Q
callhidden cmd.exe /c rd /S /Q "C:Dokumente und EinstellungenAll UsersStartmenüProgrammeIrfanView"
funktionieren nicht :(
Wenn ich den Befehl aber manuell eingebe, wird der Ordner gelöscht.

Benutzeravatar
MSC
Beiträge: 324
Registriert: 03. Jul 2006, 09:03
Kontaktdaten:

Beitrag von MSC » 16. Feb 2010, 14:21

Hi,

wenn man folgenden Befehl eingibt, kannman eventuell einen Hinweis im DOS-Fenster erkennen:

call cmd.exe /k rd "%CommonPrograms%IrfanView" /S /Q


mfg Mario
.

Julia
Beiträge: 384
Registriert: 31. Aug 2007, 13:56
Wohnort: Essen
Kontaktdaten:

Beitrag von Julia » 16. Feb 2010, 14:42

Der "Hinweis" bzw. der Fehler den ich dann bekomme ist genau der, den Walter gerade schon geschrieben hat:
"Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird."
Aber warum?

Wenn ich aber in der setup.inf nur "call cmd.exe /k" aufrufe und den Befehl manuell eingebe erhalte ich den gleichen Fehler. Wenn ich das Skript dann beende bzw. abbreche ("Stop Debugging"), läßt sich der Ordner sofort problemlos löschen.

Benutzeravatar
Theo_Gottwald
Beiträge: 321
Registriert: 03. Okt 2009, 08:57
Wohnort: Herrenstr.11 * 76706 Dettenheim
Kontaktdaten:

Beitrag von Theo_Gottwald » 17. Feb 2010, 09:59

Es gibt immer mehrere Wege nach Rom.
Wenn kein anderer geht kann man auch hier den Package Robot zweckentfremden.

Statt

Code: Alles auswählen

callhidden cmd.exe /c rd /S /Q "%CommonPrograms%IrfanView" 
Kan man sich eine EXE machen die diesen Zweizeiler enthällt:

Code: Alles auswählen

VAR\$$PAT=?startprog\MeinOrdner\.
RMD\$$PAT
Oder wie wärs mit - nur alle Unterverzeichnisse löschen?

Code: Alles auswählen

:neu
IEF\?startmen\MyFolder\*\.
 RMD\$v1$
 GOTO neu
EEF\
@
Man muß den richtigen Spezialordner für das Startmenü angeben.
Es gibt da nämlich mehrere und noch den Quicklaunch.

Code: Alles auswählen

"?startmen"	= "c:\windows\startmenü"
"?cstartmen"	= "c:\windows\All Users\startmenü" (Common)
"?access"		= "c:\windows\startmenü\programme\zubehör"
"?startprog"	= "c:\windows\startmenü\programme"
"?cstartprog"	= "c:\windows\All Users\startmenü\programme" (Common)
"?ql"	= "c:\windows\User\Anwendungsdaten\Microsoft\Internet Explorer\Quick Launch"
			  (Schnellstartleiste)	

Julia
Beiträge: 384
Registriert: 31. Aug 2007, 13:56
Wohnort: Essen
Kontaktdaten:

Beitrag von Julia » 17. Feb 2010, 15:15

Hallo Theo,

da ja doch häufiger hier Tipps von dir kommen, wie man Sachen mit dem Package Robot löst, habe ich mal eine Frage dazu.
Kostenlos kann man sich nur eine Testversion installieren, die nur begrenzte Tage nutzbar ist. Was passiert mit den damit erstellten Dateien? Sind diese auf ewig und überall einsetzbar, oder gibt es da auch Einschränkungen? Ansonsten müßte die Software erst bestellt bzw. gekauft werden, was sich meiner Meinung nach in solch einem Fall nicht wirklich lohnt.

Zudem sollte es doch auch anders gehen!? Ich möchte nur einen Ordner löschen, das ist ja nix besonderes... :?

Benutzeravatar
Hendrik_Ambrosius
Moderator
Moderator
Beiträge: 7592
Registriert: 13. Dez 2004, 23:10
Wohnort: Adendorf/Lüneburg

Beitrag von Hendrik_Ambrosius » 17. Feb 2010, 18:08

Die damit erstellten Dateien müssen danach noch mal mit einem lizensierten Robot neu compiliert werden und laufen dann wieder!
Hendrik Ambrosius / Senior Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 AG | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com

Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 AG or of the support team.

Benutzeravatar
Theo_Gottwald
Beiträge: 321
Registriert: 03. Okt 2009, 08:57
Wohnort: Herrenstr.11 * 76706 Dettenheim
Kontaktdaten:

Beitrag von Theo_Gottwald » 17. Feb 2010, 20:48

die nur begrenzte Tage nutzbar ist.
... Ich möchte nur einen Ordner löschen, das ist ja nix besonderes...
Ich dachte du willst nur ein paar Ordner löschen.

Das geht problemlos auch mit der Testversion, zumal es ja kein 14 Tage dauern kann bis die Ordner weg sind. Und übrigens auch viele andere Tasks, die man nur einmal machen muß und nicht öfter.

Da kann jeder die Package Robot Testversion dazu nehmen.
Wegen einmal braucht er das ja nicht kaufen, wenn er das sonst nie braucht.

Nur, wenn dich die (gelöschten :-)) Ordner verfolgen (die Biester), und du merkst dass du den robot regelmäßig gut brauchen kannst, dann ist der Zeitpunkt wo die Testversion dir mehr Umstände macht als das Produkt zu kaufen.

Und so ist es ja auch gedacht, denk ich - aber ich bin nicht vom Marketing.

Julia
Beiträge: 384
Registriert: 31. Aug 2007, 13:56
Wohnort: Essen
Kontaktdaten:

Beitrag von Julia » 18. Feb 2010, 08:40

@Herr Ambrosius: Also wenn ich auf einem Testrechner die Package Robot Dateien erstelle und dann auf dem Empirum Server einbinde, sind die Dateien nur 30 Tage nutzbar?
Haben Sie denn sonst noch eine Idee, wie das ohne Package Robot machbar ist, oder soll ich dafür besser einen Call aufmachen?

@Theo: So ein Empirum Skript hat meistens den Zweck eine Software immer wieder auf vielen verschiedenen Rechnern installieren zu können. Und jedes Mal, wenn diese Software irgendwo installiert wird, soll anschließend der Startmenü-Eintrag gelöscht werden.

Benutzeravatar
Theo_Gottwald
Beiträge: 321
Registriert: 03. Okt 2009, 08:57
Wohnort: Herrenstr.11 * 76706 Dettenheim
Kontaktdaten:

Beitrag von Theo_Gottwald » 18. Feb 2010, 09:12

Code: Alles auswählen

 Ich möchte nur einen Ordner löschen, das ist ja nix besonderes... 
Vielleicht schon.

Mal abgesehen davon, dass es verschiedene Orte gibt, wo die Startmenü-Ordner erzeugt werden, gibt es hier noch jede Menge mehr Fehlermöglichkeiten.

Jedenfalls liegt es nicht an Empirum und dem Löschbefehl, wenn mein Vorschreiber sagt:
Probleme mit "deltree" und den Eintraegen im Startmenue haben eine lange Tradition in Empirum.
Weitere Probleme sind:

1. Die Startmenü-Ordnererstellung erfolgt gelegentlich asynchron, man muß also sicherstellen, dass die Ordner auch wirklich bereits da sind, wenn der Löschbefehl ausgeführt wird. Der DEL-Befehl wartet ja nicht auf die Ordner!

2. Die Ordner dürfen nicht gesperrrt sein. Und das scheint hier dein Problem zu sein.

Code: Alles auswählen

Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird. 
Nun ist das Löschen von gesperrten Ordnern nicht mehr ganz so trivial.

Vielleicht funktioniert dein Script ja, aber es muß da einfach nur eine Wartezeit/Entkopplung rein, weil offensichtlich der Ordner ge-locked ist solange der Setup-Prozess selbst noch läuft.

Klingt jetzt nicht mehr ganz so simpel.

Mit Empirum kenn ich micht nicht so gut aus.
Vielleicht kannst du einen Empirum Task einrichten, der erst beim nächsten Start/oder User-Anmeldung den besagten Ordner löscht?

Mit dem Robot hat man da alle Möglichkeiten, da er via eigenen Prozess gestartet wird, kann er asynchron starten, warten bis der Ordner erstmal da ist, und dann bis der Ordner gelöscht werden kann.
Und dann erst den Ordner löschen. Und sich dann erst beenden.

Antworten

Zurück zu „Package Robot“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast