Firefox-Einstellungen automatisch beim Anmelden per VB-Script setzen
Ich betreue einen Windows 2003-Terminal-Server. Dort soll aber dennoch Firefox als Standardbrowser verwendet werden und nicht der Internet Explorer. Da sich aber x Leute dort einloggen können, muss eine Möglichkeit gefunden werden, bestimmte Firefox-Einstellungen vorzugeben, die automatisch angewandt werden, wenn sich diese Person das erste Mal anmeldet. Sehr hilfreich könnte in diesem Zusammenhang FirefoxADM sein, aber für meinen Zweck wäre das Overkill gewesen. So habe ich ein kleines VB-Skript gemacht (oder besser modifiziert), was die für mich wichtigen Einstellungen setzt.
Zuerst muss Firefox zum Standardbrowser gemacht werden. Dazu reicht eine einfach Batch-Datei
Das VB-Script nun klappert alle Firefox-Profile des eingeloggten Nutzers ab und überschreibt in der Datei
Auf diese beiden Dateien kann dann im Gruppenrichtlinienobjekt-Editor unter
! Aufrufen mit:

Zwar kann der Nutzer die Einstellungen ändern, aber beim nächsten Login werden diese wieder überschrieben.
Nachtrag: Wenn der Nutzer sich das erste Mal anmeldet, wird er vom Import-Dialog des Firefox begrüßt. Das kann einfach deaktiviert werden. Dazu wird eine Datei
Zuerst muss Firefox zum Standardbrowser gemacht werden. Dazu reicht eine einfach Batch-Datei
C:\Windows\setFirefoxDefault.bat mit diesem Inhalt:@ECHO OFF
"C:\Programme\Mozilla Firefox\firefox.exe" -silent -setDefaultBrowser
Das VB-Script nun klappert alle Firefox-Profile des eingeloggten Nutzers ab und überschreibt in der Datei
prefs.js bestimmte Werte. Sollte noch gar kein Profil existieren, wird eines erzeugt. Das Script basiert sehr stark auf dem Script firefox_login.lgns von FirefoxADM, ist aber von mir auf die von mir benötigten Einstellungen geändert worden. Das Script liegt bei mir unter C:\Windows\setFirefoxSettings.vbs.' Override firefox settings defined in prefs.js in user's profile
' Creates a new profile first if necessary
'
' http://kb.mozillazine.org/About:config_entries
'
Dim FirefoxCacheKey, FirefoxBookmarksKey, DisableXPIInstallations
Dim DisableUpdateNotifications, BrowseWithCaret
Dim StartupHomepage, StartupHomepageReset, StartupHomepageWelcomeURL, StartupHomepageOverrideURL
' Default startup page url
' Set this to "" to skip this setting
StartupHomepage="http://www.bheil.net/blog/"
' If the user requested that their homepage be reset, get the new homepage value from this location
' Set this to "" to skip this setting
StartupHomepageReset="http://www.bheil.net/blog/"
' The URL that Firefox goes to when the user starts up the browser after the initial installation,
' or with a new profile
' http://kb.mozillazine.org/Startup.homepage_welcome_url
' Set this to "" to skip this setting
StartupHomepageWelcomeURL="http://www.bheil.net/blog/"
' The URL that Firefox goes to when the user starts up the browser after upgrading
' http://kb.mozillazine.org/Startup.homepage_override_url
' Set this to "" to skip this setting
StartupHomepageOverrideURL="http://www.bheil.net/blog/"
' Disable XPI (=Extensions) Installations
' Set this to 0 to skip this setting
DisableXPIInstallations = 1
' Disable update notifications
' Set this to 0 to skip this setting
DisableUpdateNotifications = 1
' Number of maximum days to remember visited pages in history (180 in Firefox 3)
' http://kb.mozillazine.org/Browser.history_expire_days
' Set this to 0 to skip this setting
HistoryExpireDays = 60
' Number of minimum days to remember visited pages in history
' http://kb.mozillazine.org/Browser.history_expire_days_min
' Set this to 0 to skip this setting
HistoryExpireDaysMin = 30
' Maximum number of websites to keep in history (40000 in Firefox 3)
' http://kb.mozillazine.org/Browser.history_expire_sites
' Set this to 0 to skip this setting
HistoryExpireSites = 10000
' Max. Cache size in KB
' Set this to 0 to skip this setting
FirefoxCacheKey = 20000
' Standard bookmarks html file (simple Firefox export)
' set to "" to skip this
FirefoxBookmarksKey = "C:\Windows\firefox-standard-bookmarks.html"
' Browse with caret
' http://kb.mozillazine.org/Accessibility.browsewithcaret
' Set this to 0 to skip this setting
BrowseWithCaret = 1
'''''''''''''''''''''''''''''''''''''''''''''''''''''''
set wshShell = WScript.CreateObject("WScript.Shell")
set fso = CreateObject("Scripting.FileSystemObject")
Dim FirefoxProfilePath, FirefoxProfileIniFile, FirefoxPrefsFile, FirefoxProfileFolder, FirefoxProfiles
Dim FirefoxFolder, PrefsFile, ParsePrefsFile, ParseOutPrefsFile, HomePageSetReset, FolderCreate, FirefoxEmptyPrefsFile
on error resume next
set EnVar = wshShell.environment("Process")
FirefoxProfilePath = EnVar("appdata") & "\Mozilla\Firefox\Profiles"
' Check for an existing firefox profile and create a new one if necessary
if fso.FolderExists(FirefoxProfilePath) = false then
if fsoFolderExists(EnVar("appdata") & "\Mozilla\Firefox") = false then
if fsoFolderExists(EnVar("appdata") & "\Mozilla") = false then
if fsoFolderExists(EnVar("appdata")) = false then
FolderCreate = fso.CreateFolder(EnVar("appdata"))
end if
FolderCreate = fso.CreateFolder(EnVar("appdata") & "\Mozilla")
end if
FolderCreate = fso.CreateFolder(EnVar("appdata") & "\Mozilla\Firefox")
' Create a default profiles.ini file
Set FirefoxProfileIniFile = fso.CreateTextFile(Envar("appdata") & "\Mozilla\Firefox\profiles.ini")
FirefoxProfileIniFile.WriteLine("[General]")
FirefoxProfileIniFile.WriteLine("StartWithLastProfile=1")
FirefoxProfileIniFile.WriteLine("")
FirefoxProfileIniFile.WriteLine("[Profile0]")
FirefoxProfileIniFile.WriteLine("Name=default")
FirefoxProfileIniFile.WriteLine("IsRelative=1")
FirefoxProfileIniFile.WriteLine("Path=Profiles/yhc73d.default")
FirefoxProfileIniFile.Close
end if
FolderCreate = fso.CreateFolder(EnVar("appdata") & "\Mozilla\Firefox\Profiles")
FolderCreate = fso.CreateFolder(EnVar("appdata") & "\Mozilla\Firefox\Profiles\yhc73d.default")
Set FirefoxEmptyPrefsFile = fso.CreateTextFile(Envar("appdata") & "\Mozilla\Firefox\Profiles\yhc73d.default\prefs.js")
FirefoxEmptyPrefsFile.Close
end if
if fso.FolderExists(FirefoxProfilePath) then
set FirefoxProfileFolder = fso.GetFolder(FirefoxProfilePath)
set FirefoxProfiles = FirefoxProfileFolder.SubFolders
For Each FirefoxFolder in FirefoxProfiles
FirefoxPrefsFile = FirefoxProfilePath & "\" & FirefoxFolder.Name & "\prefs.js"
if fso.FileExists(FirefoxPrefsFile) then
' Set startup pages
if StartupHomepage <> "" then
RemoveCurrentPrefsFromFile("browser.startup.homepage")
set tmp = AppendPrefsToFile("browser.startup.homepage", chr(34) & StartupHomepage & chr(34))
RemoveCurrentPrefsFromFile("browser.startup.page")
set tmp = AppendPrefsToFile("browser.startup.page", 1)
end if
if StartupHomepageReset <> "" then
RemoveCurrentPrefsFromFile("browser.startup.homepage_reset")
set tmp = AppendPrefsToFile("browser.startup.homepage_reset", chr(34) & StartupHomepageReset & chr(34))
end if
if StartupHomepageWelcomeURL <> "" then
RemoveCurrentPrefsFromFile("startup.homepage_welcome_url")
set tmp = AppendPrefsToFile("startup.homepage_welcome_url", chr(34) & StartupHomepageWelcomeURL & chr(34))
end if
if StartupHomepageOverrideURL <> "" then
RemoveCurrentPrefsFromFile("startup.homepage_override_url")
set tmp = AppendPrefsToFile("startup.homepage_override_url", chr(34) & StartupHomepageOverrideURL & chr(34))
end if
' Cache
if FirefoxCacheKey > 0 then
RemoveCurrentPrefsFromFile("browser.cache.disk.capacity")
set tmp = AppendPrefsToFile("browser.cache.disk.capacity", FirefoxCacheKey)
end if
' Disable XPI Installations
if DisableXPIInstallations = 1 then
RemoveCurrentPrefsFromFile("xpinstall.enabled")
RemoveCurrentPrefsFromFile("xpinstall.dialog.confirm")
RemoveCurrentPrefsFromFile("xpinstall.dialog.progress.chrome")
RemoveCurrentPrefsFromFile("xpinstall.dialog.progress.skin")
RemoveCurrentPrefsFromFile("xpinstall.dialog.progress.type.chrome")
RemoveCurrentPrefsFromFile("xpinstall.dialog.progress.type.skin")
set tmp = AppendPrefsToFile("xpinstall.enabled", "false")
set tmp = AppendPrefsToFile("xpinstall.dialog.confirm", chr(34) & "sorry-installation-permission-denied" & chr(34))
set tmp = AppendPrefsToFile("xpinstall.dialog.progress.chrome", chr(34) & "sorry-installation-permission-denied" & chr(34))
set tmp = AppendPrefsToFile("xpinstall.dialog.progress.skin", chr(34) & "sorry-installation-permission-denied" & chr(34))
set tmp = AppendPrefsToFile("xpinstall.dialog.progress.type.chrome", chr(34) & "sorry-installation-permission-denied" & chr(34))
set tmp = AppendPrefsToFile("xpinstall.dialog.progress.type.skin", chr(34) & "sorry-installation-permission-denied" & chr(34))
end if
' Copy bookmarks file
if FirefoxBookmarksKey <> "" then
if fso.FileExists(FirefoxBookmarksKey) then
fso.CopyFile FirefoxBookmarksKey, FirefoxProfilePath & "\" & FirefoxFolder.Name & "\bookmarks.html"
end if
end if
' Browse with Caret
if BrowseWithCaret = 1 then
RemoveCurrentPrefsFromFile("accessibility.browsewithcaret")
set tmp = AppendPrefsToFile("accessibility.browsewithcaret", "true")
end if
' Disable update notifications
if DisableUpdateNotifications = 1 then
RemoveCurrentPrefsFromFile("update.showSlidingNotification")
set tmp = AppendPrefsToFile("update.showSlidingNotification", "false")
RemoveCurrentPrefsFromFile("update_notifications.enabled")
set tmp = AppendPrefsToFile("update_notifications.enabled", "false")
end if
' History settings
if HistoryExpireDays > 0 then
RemoveCurrentPrefsFromFile("browser.history_expire_days")
set tmp = AppendPrefsToFile("browser.history_expire_days", HistoryExpireDays)
end if
if HistoryExpireDaysMin > 0 then
RemoveCurrentPrefsFromFile("browser.history_expire_days_min")
set tmp = AppendPrefsToFile("browser.history_expire_days_min", HistoryExpireDaysMin)
end if
if HistoryExpireSites > 0 then
RemoveCurrentPrefsFromFile("browser.history_expire_sites")
set tmp = AppendPrefsToFile("browser.history_expire_sites", HistoryExpireSites)
end if
end if
next
end if
Function RemoveCurrentPrefsFromFile(removeSetting)
Set ParsePrefsFile = fso.OpenTextFile(FirefoxPrefsFile, 1)
' Get file content into an array:
Dim aContents
aContents = Split(ParsePrefsFile.ReadAll, vbCrLf)
ParsePrefsFile.Close
set ParsePrefsFile = Nothing
' Parse Back In to Prefs.js file
Dim aContentsNew
aContentsNew = Filter(aContents, chr(34) & removeSetting & chr(34), False, vbTextCompare)
' Overwrite the old file with the new file,
Set ParseOutPrefsFile = fso.OpenTextFile(FirefoxPrefsFile, ForWriting)
ParseOutPrefsFile.Write Join(aContentsNew, vbCrLf)
ParseOutPrefsFile.Close
End Function
Function AppendPrefsToFile(writeKey, writeData)
set PrefsFile = fso.OpenTextFile(FirefoxPrefsFile, 8)
PrefsFile.Write("user_pref(" & chr(34) & writeKey & chr(34) & ", " & writeData & ");" & vbNewLine)
PrefsFile.Close
End Function
Auf diese beiden Dateien kann dann im Gruppenrichtlinienobjekt-Editor unter
Benutzerkonfiguration -> Windows-Einstellungen -> Skripts -> Anmelden verwiesen werden, so dass die Skripte beim Login automatisch ausgeführt werden. (Ist die Microsoft-Welt nicht was schönes? Gruppenrichtlinienobjekt-Editor, da freut sich jeder Beamte Start -> Ausführen -> gpedit.msc) 
Zwar kann der Nutzer die Einstellungen ändern, aber beim nächsten Login werden diese wieder überschrieben.
Nachtrag: Wenn der Nutzer sich das erste Mal anmeldet, wird er vom Import-Dialog des Firefox begrüßt. Das kann einfach deaktiviert werden. Dazu wird eine Datei
override.ini im Ordner des Firefox erzeugt (muss bei der firefox.exe liegen) mit folgendem Inhalt:[XRE]
EnableProfileMigrator=false
