Seite 1 von 1

winbatch keine Desktop-Verknüpfung

Verfasst: 21 Jan 2015, 15:32
von Keller
Hallo zusammen

ich habe nun einige Skripts erstellt, jedoch bekomme ich bei Firefox und Google Chrome eine Desktop-Verknüpfung erstellt, welche ich nicht möchte.
Kann mir jemand sagen, wie ich dies unterbinden kann?

Grüsse "Keller"


Skript:

[Initial]
;Standard Text, der während der Installation angezeigt wird
Message = Bitte warten, das Produkt wird installiert
;Loglevel einstellen
setLogLevel = 6
;Bei Fehlern abbrechen
ExitOnError=false
;Syntax Fehler werden in einem separaten Fenster angezeigt
ScriptErrorMessages=on
;Single-Step Mode nicht verwenden
TraceMode=off
;Im Batchmode das Winst-Fenster nicht im Vordergrund anzeigen
StayOnTop=false



[Actions]
;Variable für die Ermittlung des Betriebssystems
DefVar $OS$
set $OS$ = GetOS
;Variable für die Ermittlung der Betriebssystem Unterversion
DefVar $NTVersion$
set $NTVersion$ = GetNTVersion
;Name des Produkts (max. 12 Zeichen)
DefVar $ProductName$
Set $ProductName$ = "Chrome"
;Dateiname des Produktbildes mit Erweiterung
DefVar $ProductPicture$
Set $ProductPicture$ = "Chrome.png"
;Die Variable zur Auswertung des ExitCodes
DefVar $ExitCode$
;Vollständiger Produktname incl. Versionsnummer
DefVar $ProductNameFull1$
set $ProductNameFull1$ = "Google Chrome"
;Dateinamen der zu installierenden MSI-Pakete
DefVar $Executable1$
Set $Executable1$ = "Chrome_Setup.msi"
;Anzeigen der Installationsbenachrichtigung incl. des vollen Produktnamens
Message "Installiere "+$ProductNameFull1$
;Prüfen der Winst Version
requiredWinstVersion >= "4.11"
;$ProductPicture$ und $ProductName$ anzeigen
ShowBitmap /3 "%scriptpath%\" + $ProductPicture$ $ProductName$

;Freien Speicherplatz ermitteln
if not (HasMinimumSpace ("%SYSTEMDRIVE%", "500 MB"))
LogError "Nicht genügend Platz auf %SYSTEMDRIVE%"
isFatalError
endif


;OS-Version ermitteln
if ( $NTVersion$ = "Win2K" OR $NTVersion$ = "WinXP" OR $NTVersion$ = "Win NT 5.2" OR $NTVersion$ = "Windows Vista" )
Message "Deinstallation alter Produktversionen"
sub "%ScriptPath%\delsub32.ins"
Message "Installiere "+$ProductNameFull1$
Winbatch_Install
sub "%ScriptPath%\check_msi-exitcode.ins"
Registry_Global /32Bit

else

LogError "Kein kompatibles Betriebssystem installiert"

isFatalError
endif


[Winbatch_Install]
msiexec.exe /i "%SCRIPTPATH%\$Executable1$" /qn



[LinkFolder_Custom]

;Startmenü anpassen
set_basefolder common_programs
set_subfolder ""
delete_subfolder "Google Chrome"
set_subfolder ""
set_link
name: chrome
target: "%ProgramFiles32Dir%\Application\Chrome_Setup.msi"
parameters:
working_dir: "%ProgramFiles32Dir%\Application"
icon_file:
icon_index:
end_link




[Registry_Global]
OpenKey [HKLM\Software\Policies\Google\Chrome]
;ProxyServerMode auf Manuell einstellen
Set "ProxyServerMode" = REG_DWORD:0x00000002

;Adresse für Proxy Konfigurationsdatei eintragen
Set "ProxyPacUrl" = REG_SZ:"http://proxy.your.domain/proxy.pac"

;Keine Statistiken an Google senden
Set "MetricsReportingEnabled" = REG_DWORD:0x00000000

;Keine Daten-Synchronisation mit Google Diensten
Set "SyncDisabled" = REG_DWORD:0x00000001

OpenKey [HKLM\SOFTWARE\Policies\Google\Update]
;Auto Update deaktivieren
Set "AutoUpdateCheckPeriodMinutes" = REG_DWORD:0x0000a8c0
Set "DisableAutoUpdateChecksCheckboxValue" = REG_DWORD:0x00000001

Re: winbatch keine Desktop-Verknüpfung

Verfasst: 21 Jan 2015, 17:03
von dkoch
Unterbinden geht nicht.
Du kannst sie aber hinterher löschen.

Code: Alles auswählen

[Files_Del_Lnk]
del "%CommonDesktopDir%\Firefox.lnk"

Re: winbatch keine Desktop-Verknüpfung

Verfasst: 21 Jan 2015, 18:08
von Keller
Danke dkoch für deinen Hinweis.
Leider bin ich mit dem scripten noch nicht so vertraut und habe nun Mühe damit.

Könntest du mir helfen, wie ich dies platzieren muss?

Code: Alles auswählen

[Initial]
;Standard Text, der während der Installation angezeigt wird
Message = Bitte warten, das Produkt wird installiert
;Loglevel einstellen
setLogLevel = 6
;Bei Fehlern abbrechen
ExitOnError=false
;Syntax Fehler werden in einem separaten Fenster angezeigt
ScriptErrorMessages=on
;Single-Step Mode nicht verwenden
TraceMode=off
;Im Batchmode das Winst-Fenster nicht im Vordergrund anzeigen
StayOnTop=false
 
 
 
[Actions]
;Variable für die Ermittlung des Betriebssystems
	DefVar $OS$
	set $OS$ = GetOS
;Variable für die Ermittlung der Betriebssystem Unterversion
	DefVar $NTVersion$
	set $NTVersion$ = GetNTVersion
;Name des Produkts (max. 12 Zeichen)
	DefVar $ProductName$
	Set $ProductName$ = "Chrome"
;Dateiname des Produktbildes mit Erweiterung
	DefVar $ProductPicture$
	Set $ProductPicture$ = "Chrome.png"
;Die Variable zur Auswertung des ExitCodes
	DefVar $ExitCode$
;Vollständiger Produktname incl. Versionsnummer
	DefVar $ProductNameFull1$
	set $ProductNameFull1$ = "Google Chrome"
;Dateinamen der zu installierenden MSI-Pakete
	DefVar $Executable1$
	Set $Executable1$ = "Chrome_Setup.msi"
;Anzeigen der Installationsbenachrichtigung incl. des vollen Produktnamens
	Message "Installiere "+$ProductNameFull1$
;Prüfen der Winst Version
	requiredWinstVersion >= "4.11"
;$ProductPicture$ und $ProductName$ anzeigen
	ShowBitmap /3 "%scriptpath%\" + $ProductPicture$ $ProductName$
 
;Freien Speicherplatz ermitteln
	if not (HasMinimumSpace ("%SYSTEMDRIVE%", "500 MB"))
		LogError "Nicht genügend Platz auf %SYSTEMDRIVE%"
		isFatalError
	endif
 
 
;OS-Version ermitteln
	if ( $NTVersion$ = "Win2K" OR $NTVersion$ = "WinXP" OR $NTVersion$ = "Win NT 5.2" OR $NTVersion$ = "Windows Vista" )
		Message "Deinstallation alter Produktversionen"
		sub "%ScriptPath%\delsub32.ins"
		Message "Installiere "+$ProductNameFull1$
		Winbatch_Install
		sub "%ScriptPath%\check_msi-exitcode.ins"
		LinkFolder_Custom
		[Files_Del_Lnk]
		Files_Copy
		Registry_Global /32Bit
	else
		LogError "Kein kompatibles Betriebssystem installiert"
		isFatalError
	endif
 
 
[Winbatch_Install]
msiexec.exe /i "%SCRIPTPATH%\$Executable1$" /qn

 
[LinkFolder_Custom]
;Startmenü anpassen
set_basefolder common_programs
set_subfolder ""
delete_subfolder "Google Chrome"
set_subfolder ""
set_link
        name: Google Chrome
        target: "%ProgramFiles32Dir%\Google\Chrome\Application\chrome.exe"
        parameters:
        working_dir: "%ProgramFiles32Dir%\Google\Chrome\Application"
        icon_file:
        icon_index:
end_link


[Files_Del_Lnk]
del "%CommonDesktopDir%\Google Chrome.Ink"



 
 
[Registry_Global]
OpenKey [HKLM\Software\Policies\Google\Chrome]
	;ProxyServerMode auf Manuell einstellen
	Set "ProxyServerMode" = REG_DWORD:0x00000002
 
	;Adresse für Proxy Konfigurationsdatei eintragen
	Set "ProxyPacUrl" = REG_SZ:"http://proxy.your.domain/proxy.pac"
 
	;Keine Statistiken an Google senden
	Set "MetricsReportingEnabled" = REG_DWORD:0x00000000
 
	;Keine Daten-Synchronisation mit Google Diensten
	Set "SyncDisabled" = REG_DWORD:0x00000001
 
OpenKey [HKLM\SOFTWARE\Policies\Google\Update]
	;Auto Update deaktivieren
	Set "AutoUpdateCheckPeriodMinutes" = REG_DWORD:0x0000a8c0
	Set "DisableAutoUpdateChecksCheckboxValue" = REG_DWORD:0x00000001
 
 
[Files_Copy]
copy "%SCRIPTPATH%\master_preferences" "%ProgramFiles32Dir%\Google\Chrome\Application"

Re: winbatch keine Desktop-Verknüpfung

Verfasst: 21 Jan 2015, 23:13
von dkoch
Klar.
Soweit absolut richtig.

Bein Sektions-Aufruf musst du aber die [] Klammern weg lassen

Code: Alles auswählen

      LinkFolder_Custom
      [Files_Del_Lnk]
      Files_Copy

Sobald du die erste Sektion definierst mit "[Files_Irgendwas_Bla_Bla]" können nur noch definitionen folgen ( also weitre [Registry_Bla], [Winbatch_Bla], etc. ).
Den eigentlichen aufruf dieser Definition macht man weiter oben ohne die klammern damit der Interpreter weiß, dass es der Aufruf und nicht die Definition ist.
Es ist auch vollkommen legitim Sektionen mehrfach aufzurufen:

Code: Alles auswählen

Files_Bla
Files_Bla
Files_Bla

[Files_Bla]
...
Warum auch immer man das tun müsste/wollte.

Also kurz gesagt ganz unten definierst du Sektionen und oben rufst du sie auf / startest sie.

Dadurch das du oben [Files_Del_Lnk] geschrieben hast war der Interpreter der annahme es folgen nur noch definitionen von Sektionen was hier ja nicht der fall war ;)


Um die Verwirrung jetzt komplett zu machen:
Du verwendest noch [Initial] und [Actions]
Diese beiden sind obsolet und können einfach weg gelassen werden.
Alles was vor der ersten Sektionsdefinition kommt ist automatisch [Initial] und/oder [Actions]

Re: winbatch keine Desktop-Verknüpfung

Verfasst: 22 Jan 2015, 10:37
von Keller
Hallo dkoch

Danke für deine Erklärung:

Nun habe ich das File angepasst, anhand Deiner Beschreibung

Code: Alles auswählen

;Standard Text, der während der Installation angezeigt wird
Message = Bitte warten, das Produkt wird installiert
;Loglevel einstellen
setLogLevel = 6
;Bei Fehlern abbrechen
ExitOnError=false
;Syntax Fehler werden in einem separaten Fenster angezeigt
ScriptErrorMessages=on
;Single-Step Mode nicht verwenden
TraceMode=off
;Im Batchmode das Winst-Fenster nicht im Vordergrund anzeigen
StayOnTop=false
 
 
 
;Variable für die Ermittlung des Betriebssystems
	DefVar $OS$
	set $OS$ = GetOS
;Variable für die Ermittlung der Betriebssystem Unterversion
	DefVar $NTVersion$
	set $NTVersion$ = GetNTVersion
;Name des Produkts (max. 12 Zeichen)
	DefVar $ProductName$
	Set $ProductName$ = "Chrome"
;Dateiname des Produktbildes mit Erweiterung
	DefVar $ProductPicture$
	Set $ProductPicture$ = "Chrome.png"
;Die Variable zur Auswertung des ExitCodes
	DefVar $ExitCode$
;Vollständiger Produktname incl. Versionsnummer
	DefVar $ProductNameFull1$
	set $ProductNameFull1$ = "Google Chrome"
;Dateinamen der zu installierenden MSI-Pakete
	DefVar $Executable1$
	Set $Executable1$ = "Chrome_Setup.msi"
;Anzeigen der Installationsbenachrichtigung incl. des vollen Produktnamens
	Message "Installiere "+$ProductNameFull1$
;Prüfen der Winst Version
	requiredWinstVersion >= "4.11"
;$ProductPicture$ und $ProductName$ anzeigen
	ShowBitmap /3 "%scriptpath%\" + $ProductPicture$ $ProductName$
 
;Freien Speicherplatz ermitteln
	if not (HasMinimumSpace ("%SYSTEMDRIVE%", "500 MB"))
		LogError "Nicht genügend Platz auf %SYSTEMDRIVE%"
		isFatalError
	endif
 
 
;OS-Version ermitteln
	if ( $NTVersion$ = "Win2K" OR $NTVersion$ = "WinXP" OR $NTVersion$ = "Win NT 5.2" OR $NTVersion$ = "Windows Vista" )
		Message "Deinstallation alter Produktversionen"
		sub "%ScriptPath%\delsub32.ins"
		Message "Installiere "+$ProductNameFull1$
		Winbatch_Install
		sub "%ScriptPath%\check_msi-exitcode.ins"
		LinkFolder_Custom
		Files_Del_Lnk
		Files_Copy
		Registry_Global /32Bit
	else
		LogError "Kein kompatibles Betriebssystem installiert"
		isFatalError
	endif
 
 
[Winbatch_Install]
msiexec.exe /i "%SCRIPTPATH%\$Executable1$" /qn

 
[LinkFolder_Custom]
;Startmenü anpassen
set_basefolder common_programs
set_subfolder ""
delete_subfolder "Google Chrome"
set_subfolder ""
set_link
        name: Google Chrome
        target: "%ProgramFiles32Dir%\Google\Chrome\Application\chrome.exe"
        parameters:
        working_dir: "%ProgramFiles32Dir%\Google\Chrome\Application"
        icon_file:
        icon_index:
end_link



 
[Registry_Global]
OpenKey [HKLM\Software\Policies\Google\Chrome]
	;ProxyServerMode auf Manuell einstellen
	Set "ProxyServerMode" = REG_DWORD:0x00000002
 
	;Adresse für Proxy Konfigurationsdatei eintragen
	Set "ProxyPacUrl" = REG_SZ:"http://proxy.your.domain/proxy.pac"
 
	;Keine Statistiken an Google senden
	Set "MetricsReportingEnabled" = REG_DWORD:0x00000000
 
	;Keine Daten-Synchronisation mit Google Diensten
	Set "SyncDisabled" = REG_DWORD:0x00000001
 
OpenKey [HKLM\SOFTWARE\Policies\Google\Update]
	;Auto Update deaktivieren
	Set "AutoUpdateCheckPeriodMinutes" = REG_DWORD:0x0000a8c0
	Set "DisableAutoUpdateChecksCheckboxValue" = REG_DWORD:0x00000001
	
	
[Files_Del_Lnk]
	del_link "%CommonDesktopDir%\Google Chrome.Ink"
 
 
[Files_Copy]
copy "%SCRIPTPATH%\master_preferences" "%ProgramFiles32Dir%\Google\Chrome\Application"

Nur leider erhalte ich bei Check die Meldung:
"Section Actions (Command in line 59):
EndIf
expected"


Aud der Line 59 ist genau mein :Files_Copy (jetzt ohne Klammern)
und weiter unten [Files_Del_Lnk]
del_link "%CommonDesktopDir%\Google Chrome.Ink"

Wie du siehst, habe ich leider meine Mühe damit.

Re: winbatch keine Desktop-Verknüpfung

Verfasst: 23 Jan 2015, 13:35
von dkoch
Du hast das geschrieben:

Code: Alles auswählen

[Files_Del_Lnk]
   del_link "%CommonDesktopDir%\Google Chrome.Ink"
Meine erste Antwort war aber:

Code: Alles auswählen

[Files_Del_Lnk]
del "%CommonDesktopDir%\Firefox.lnk"

Also "del" und nicht "del_link"