IPv6 im Firefox ausknipsen

Antworten
it_usd_goe
Beiträge: 15
Registriert: 17 Okt 2013, 13:40

IPv6 im Firefox ausknipsen

Beitrag von it_usd_goe »

Hallo,
ich habe mir als Vorlage das Firefox Script aus dem Wiki gezogen und ein paar Anpassungen vorgenommen.
Da es Probleme mit der IPv6 Einstellung gibt sind wir gezwungen den wert network.dns.disableIPv6 auf "true" zu setzen.
Das soll idealerweise per Batch file ausgeführt werden.
Problem hierbei ist dass das setzen dieser Einstellung erst möglich ist wenn firefox einmal gestartet wurde, da hier erst der *.default Ordner angelegt wird.
Ich müsste also nach der Installation von Firefox , Firefox ausführen, Firefox beenden und dann im Anschluss mein CMD-File ausführen.
Leider klappt das alles nicht so ganz wie ich es mir vorgestellt habe.
Ich müsste derzeit Firefox "per Hand" schließen und dann wird die Installation fortgesetzt und das File wird entsprechend angewendet.
Hier nun mein derzeitiges "Setup.ins"-File:

Code: Alles auswählen

; Copyright (c) uib gmbh (www.uib.de)
; This sourcecode is owned by uib
; and published under the Terms of the General Public License.
; credits: http://www.opsi.org/credits/
 
[Actions]
requiredWinstVersion >= "4.10.8.6"
 
DefVar $MsiId32$
DefVar $UninstallProgram32$
DefVar $MsiId64$
DefVar $UninstallProgram64$
DefVar $LogDir$
DefVar $ProductCat$ 
DefVar $ProductId$  
DefVar $ProductVersion$
DefVar $AllUsersDesktopLink$
DefVar $AllUsersStartMenuDir$
DefVar $MinimumSpace$
DefVar $InstallDir32$
DefVar $InstallDir64$
DefVar $ExitCode$
DefVar $LicenseRequired$
DefVar $LicenseKey$
DefVar $LicensePool$
DefVar $INST_SystemType$
DefVar $INST_architecture$
 
Set $INST_SystemType$ = GetSystemType
set $INST_architecture$ = GetProductProperty("install_architecture","system specific")
 
 
Set $LogDir$ = "%SystemDrive%\tmp"
 
; ----------------------------------------------------------------
; - Please edit the following values                             -
; ----------------------------------------------------------------
;$ProductId$ should be the name of the product in opsi
; therefore please: only lower letters, no umlauts, 
; no white space use '-' as a seperator
Set $ProductCat$      = "Internet"
Set $ProductId$       = "Firefox"
Set $ProductVersion$  = "24.0"
Set $AllUsersDesktopLink$ = "Mozilla Firefox"
Set $AllUsersStartMenuDir$ = "Mozilla Firefox"
Set $MinimumSpace$    = "200 MB"
; the path were we find the product after the installation
Set $InstallDir32$      = "%ProgramFiles32Dir%\Mozilla Firefox"
Set $InstallDir64$      = "%ProgramFiles32Dir%\Mozilla Firefox"
Set $LicenseRequired$ = "false"
Set $LicensePool$     = "p_" + $ProductId$
; ----------------------------------------------------------------
 
if not(HasMinimumSpace ("%SystemDrive%", $MinimumSpace$))
	LogError "Not enough space on %SystemDrive%, " + $MinimumSpace$ + " on drive %SystemDrive% needed for " + $ProductId$
	isFatalError
	; Stop process and set installation status to failed
else
	comment "Show product picture"
	ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $ProductId$ + " " + $ProductVersion$
 
	if FileExists("%ScriptPath%\delsub.ins")
		comment "Start uninstall sub section"
		Sub "%ScriptPath%\delsub.ins"
	endif
 
	if $LicenseRequired$ = "true"
		comment "Licensing required, reserve license and get license key"
		Sub_get_licensekey
	endif
 
	comment "installing"
 
	if (($INST_SystemType$ = "x86 System") and ($INST_architecture$ = "system specific")) or ($INST_architecture$ = "both") or ($INST_architecture$ = "32 only")
		Message "Installing " + $ProductId$ + " 32 Bit..."
		comment "Start setup program"
		Winbatch_install_32
		Killtask "firefox.exe"
		Sub_check_exitcode
		Winbatch_install_32_2
		comment "Copy files"
		Files_install_32 /32Bit
		comment "Patch Registry"
		Registry_install /32Bit
		comment "Create shortcuts"
		LinkFolder_install
	endif
 
	if ($INST_SystemType$ = "64 Bit System") and (($INST_architecture$ = "system specific") or ($INST_architecture$ = "both") or ($INST_architecture$ = "64 only"))
		Message "Installing " + $ProductId$ + " 64 Bit..."
		comment "Start setup program"
		Winbatch_install_64
		Killtask "firefox.exe"
		Sub_check_exitcode
		Winbatch_install_64_2
		comment "Copy files"
		Files_install_64 /64Bit
		comment "Patch Registry"
		Registry_install /64Bit
		comment "Create shortcuts"
		LinkFolder_install
	endif
 
endif
 
[Winbatch_install_32]
 
"%ScriptPath%\files\Firefox$ProductVersion$esr.exe" -ms -ira
;"%ScriptPath%\files\menu.cmd" "$ProductCat$" "$ProductId$" "$ProductVersion$" "$AllUsersDesktopLink$" "$AllUsersStartMenuDir$"
"$InstallDir32$\firefox.exe" 
; Choose one of the following examples as basis for your installation
; You can use $LicenseKey$ var to pass a license key to the installer
;
; === Nullsoft Scriptable Install System ================================================================
; "%ScriptPath%\Setup.exe" /S
;
; === MSI package =======================================================================================
; You may use the parameter PIDKEY=$Licensekey$
; msiexec /i "%ScriptPath%\some.msi" /l* "$LogDir$\$ProductId$.install_log.txt" /qb! ALLUSERS=2 REBOOT=ReallySuppress
;
; === InstallShield + MSI=====================================================================================
; Attention: The path to the log file should not contain any whitespaces
; "%ScriptPath%\setup.exe" /s /v" /l* $LogDir$\$ProductId$.install_log.txt /qb! ALLUSERS=2 REBOOT=ReallySuppress"
; "%ScriptPath%\setup.exe" /s /v" /qb! ALLUSERS=2 REBOOT=ReallySuppress"
;
; === InstallShield =====================================================================================
; Create setup.iss answer file by running: setup.exe /r /f1"c:\setup.iss"
; "%ScriptPath%\setup.exe" /s /sms /f1"%ScriptPath%\setup.iss" /f2"$LogDir$\$ProductId$.install_log.txt"
;
; === Inno Setup ========================================================================================
; http://unattended.sourceforge.net/InnoSetup_Switches_ExitCodes.html
; You may create setup answer file by: setup.exe /SAVEINF="filename"
; You may use an answer file by the parameter /LOADINF="filename"
; "%ScriptPath%\setup.exe" /sp- /silent /norestart
 
[Winbatch_install_32_2] 
"c:\windows\system32\cmd.exe" /c "%ScriptPath%\files\firefox.cmd"


[Files_install_32]
; Example of recursively copying some files into the installation directory:
;
; copy -s "%ScriptPath%\files\*.*" "$InstallDir32$"
copy "%CommonDesktopDir%\$AllUsersDesktopLink$.lnk" "%CommonStartmenuDir%\Programme\$ProductCat$"
copy "%CommonStartmenuDir%\Programme\$AllUsersStartMenuDir$\$AllUsersDesktopLink$.lnk" "%CommonStartmenuDir%\Programme\$ProductCat$"

 
[Winbatch_install_64]
 
"%ScriptPath%\files\Firefox$ProductVersion$esr.exe" -ms -ira
;"%ScriptPath%\files\menu.cmd" "$ProductCat$" "$ProductId$" "$ProductVersion$" "$AllUsersDesktopLink$" "$AllUsersStartMenuDir$"
"$InstallDir64$\firefox.exe"  
; Choose one of the following examples as basis for your installation
; You can use $LicenseKey$ var to pass a license key to the installer
;
; === Nullsoft Scriptable Install System ================================================================
; "%ScriptPath%\Setup.exe" /S
;
; === MSI package =======================================================================================
; You may use the parameter PIDKEY=$Licensekey$
; msiexec /i "%ScriptPath%\some.msi" /l* "$LogDir$\$ProductId$.install_log.txt" /qb! ALLUSERS=2 REBOOT=ReallySuppress
;
; === InstallShield + MSI=====================================================================================
; Attention: The path to the log file should not contain any whitespaces
; "%ScriptPath%\setup.exe" /s /v" /l* $LogDir$\$ProductId$.install_log.txt /qb! ALLUSERS=2 REBOOT=ReallySuppress"
; "%ScriptPath%\setup.exe" /s /v" /qb! ALLUSERS=2 REBOOT=ReallySuppress"
;
; === InstallShield =====================================================================================
; Create setup.iss answer file by running: setup.exe /r /f1"c:\setup.iss"
; "%ScriptPath%\setup.exe" /s /sms /f1"%ScriptPath%\setup.iss" /f2"$LogDir$\$ProductId$.install_log.txt"
;
; === Inno Setup ========================================================================================
; http://unattended.sourceforge.net/InnoSetup_Switches_ExitCodes.html
; You may create setup answer file by: setup.exe /SAVEINF="filename"
; You may use an answer file by the parameter /LOADINF="filename"
; "%ScriptPath%\setup.exe" /sp- /silent /norestart

[Winbatch_install_64_2] 
"c:\windows\system32\cmd.exe" /c "%ScriptPath%\files\firefox.cmd"

 
[Files_install_64]
; Example of recursively copying some files into the installation directory:
;
; copy -s "%ScriptPath%\files\*.*" "$InstallDir64$"
copy "%CommonDesktopDir%\$AllUsersDesktopLink$.lnk" "%CommonStartmenuDir%\Programme\$ProductCat$"
copy "%CommonStartmenuDir%\Programme\$AllUsersStartMenuDir$\$AllUsersDesktopLink$.lnk" "%CommonStartmenuDir%\Programme\$ProductCat$"
 
[Registry_install]
; Example of setting some values of an registry key:
;
; openkey [HKEY_LOCAL_MACHINE\Software\$ProductId$]
; set "name1" = "some string value"
; set "name2" = REG_DWORD:0001
; set "name3" = REG_BINARY:00 af 99 cd
 
[LinkFolder_install]
; Example of deleting a folder from AllUsers startmenu:
;
; set_basefolder common_programs
; delete_subfolder $ProductId$
;
; Example of creating an shortcut to the installed exe in AllUsers startmenu:
;
; set_basefolder common_programs
; set_subfolder $ProductId$
;
; set_link
; 	name: $ProductId$
; 	target: <path to the program>
; 	parameters:
; 	working_dir: $InstallDir$
; 	icon_file:
; 	icon_index:
; end_link
;
; Example of creating an shortcut to the installed exe on AllUsers desktop:
;
; set_basefolder common_desktopdirectory
; set_subfolder ""
;
; set_link
; 	name: $ProductId$
; 	target: <path to the program>
; 	parameters: <some_param>
; 	working_dir: $InstallDir$
; 	icon_file: <path to icon file>
; 	icon_index: 2
; end_link
 
 set_basefolder common_programs
 delete_subfolder "$AllUsersStartMenuDir$"
 
 set_basefolder common_programs
 set_subfolder ""
 delete_element "$AllUsersDesktopLink$"
 
 set_basefolder common_desktopdirectory
  set_subfolder ""
 delete_element "$AllUsersDesktopLink$"
 
 
; set_basefolder common_programs
; set_subfolder "$ProductCat$"
 
; set_link
; 	name: $AllUsersDesktopLink$
; 	target: "$InstallDir32$\$ProductId$.exe"
;	working_dir: "$InstallDir32$"
; 	icon_file: "$InstallDir32$\$ProductId$.exe"
; 	icon_index: 0
; end_link
 
 
[Sub_get_licensekey]
comment "License management is enabled and will be used"
 
comment "Trying to get a license key"
Set $LicenseKey$ = demandLicenseKey ($LicensePool$)
; If there is an assignment of exactly one licensepool to the product the following call is possible:
; Set $LicenseKey$ = demandLicenseKey ("", $ProductId$)
;
; If there is an assignment of a license pool to a windows software id, it is possible to use:
; DefVar $WindowsSoftwareId$
; $WindowsSoftwareId$ = "..."
; Set $LicenseKey$ = demandLicenseKey ("", "", $WindowsSoftwareId$)
 
DefVar $ServiceErrorClass$
set $ServiceErrorClass$ = getLastServiceErrorClass
comment "Error class: " + $ServiceErrorClass$
 
if $ServiceErrorClass$ = "None"
	comment "Everything fine, we got the license key '" + $LicenseKey$ + "'"
else
	if $ServiceErrorClass$ = "LicenseConfigurationError"
		LogError "Fatal: license configuration must be corrected"
		LogError getLastServiceErrorMessage
		isFatalError
	else 
		if $ServiceErrorClass$ = "LicenseMissingError"
			LogError "Fatal: required license is not supplied"
			isFatalError
		endif
	endif
endif
 
[Sub_check_exitcode]
comment "Test for installation success via exit code"
set $ExitCode$ = getLastExitCode
; informations to exit codes see
; http://msdn.microsoft.com/en-us/library/aa372835(VS.85).aspx
; http://msdn.microsoft.com/en-us/library/aa368542.aspx
if ($ExitCode$ = "0")
	comment "Looks good: setup program gives exitcode zero"
else
	comment "Setup program gives a exitcode unequal zero: " + $ExitCode$
	if ($ExitCode$ = "1605")
		comment "ERROR_UNKNOWN_PRODUCT	1605	This action is only valid for products that are currently installed."
		comment "Uninstall of a not installed product failed - no problem"
	else
		if ($ExitCode$ = "1641")
			comment "looks good: setup program gives exitcode 1641"
			comment "ERROR_SUCCESS_REBOOT_INITIATED	1641	The installer has initiated a restart. This message is indicative of a success."
		else
			if ($ExitCode$ = "3010")
				comment "looks good: setup program gives exitcode 3010"
				comment "ERROR_SUCCESS_REBOOT_REQUIRED	3010	A restart is required to complete the install. This message is indicative of a success."
			else
				logError "Fatal: Setup program gives an unknown exitcode unequal zero: " + $ExitCode$
				isFatalError
			endif
		endif
	endif
endif
Benutzeravatar
SisterOfMercy
Beiträge: 1556
Registriert: 22 Jun 2012, 19:18

Re: IPv6 im Firefox ausknipsen

Beitrag von SisterOfMercy »

Perhaps you can close firefox with the killtask directive?

From the winst-reference manual:

Code: Alles auswählen

3.4.4 Misc functions
Killtask <process name>

requiredWinstVersion >= "4.10"
Bitte schreiben Sie Deutsch, when I'm responding in the German-speaking part of the forum!
r.witzel
Beiträge: 74
Registriert: 01 Aug 2011, 14:57
Wohnort: Melle

Re: IPv6 im Firefox ausknipsen

Beitrag von r.witzel »

Carpe Opsi :)
it_usd_goe
Beiträge: 15
Registriert: 17 Okt 2013, 13:40

Re: IPv6 im Firefox ausknipsen

Beitrag von it_usd_goe »

Keines der beiden funktioniert.
Ich kann zwar die firefox.exe starten aber ich kann den Task nicht beenden um dann die entsprechende CMD-datei auszuführen.
Benutzeravatar
SisterOfMercy
Beiträge: 1556
Registriert: 22 Jun 2012, 19:18

Re: IPv6 im Firefox ausknipsen

Beitrag von SisterOfMercy »

Remember Firefox is a 32-bit process, which might make it a little bit more difficult with a 64-bit OS.
You might want to look at my message here: viewtopic.php?p=24381#p24381
Maybe that might help you in an other way.
Bitte schreiben Sie Deutsch, when I'm responding in the German-speaking part of the forum!
Antworten