{"id":49,"date":"2009-03-02T11:15:50","date_gmt":"2009-03-02T17:15:50","guid":{"rendered":"http:\/\/www.ecimulti.org\/blog\/?p=49"},"modified":"2012-10-28T21:53:32","modified_gmt":"2012-10-29T03:53:32","slug":"lockdown-firefox-updates-on-microsoft-terminal-server","status":"publish","type":"post","link":"https:\/\/www.ecimulti.org\/blog\/?p=49","title":{"rendered":"Lockdown Firefox updates on Microsoft Terminal Server"},"content":{"rendered":"<p>I had an interesting dilemma today.<\/p>\n<p>Due to the way some of our internal applications and certain brands of network gear function, our NOC requires Mozilla Firefox on the terminal servers. Over the weekend an update must\u2019ve come out for Firefox, and a user clicked OK.<\/p>\n<p>The update crapped out halfway through since they didn\u2019t have administrative rights. Firefox doesn\u2019t appear to roll back in this situation, leaving you with a broken install. So broken that you can\u2019t even uninstall it without getting the dreaded: \u201c<strong>Your computer must be restarted to complete a previous upgrade of Firefox. Do you want to reboot now?<\/strong>\u201d which is also what it says when a user tries to open it.<\/p>\n<p>Sure would be nice if the developers of Firefox threw in a privileges sanity check.<\/p>\n<p>We need a two phased approach to fix this fiasco.<\/p>\n<p><strong>Fix #1:<\/strong> Get rid of that obnoxious error.<\/p>\n<p>Lucky for me, a co-worker of mine has ran into this before and has the fix documented on his blog here:<\/p>\n<p><a href=\"http:\/\/blog.acrile.com\/2008\/12\/your-computer-must-be-restarted-to.html\">http:\/\/blog.acrile.com\/2008\/12\/your-computer-must-be-restarted-to.html<\/a><\/p>\n<p>Long story short: delete the <strong>*.moz-upgrade <\/strong>and <strong>*.moz-delete <\/strong>files from Firefox folder. Now that the error is gone, I went ahead and uninstalled\/reinstalled Firefox just to make sure nothing dirty was left behind.<\/p>\n<p><strong>Fix #2:<\/strong> Disable the auto-update feature in Firefox.<\/p>\n<p>I accomplished this by first creating a file called <strong>mozilla.cfg <\/strong>in the <strong>C:Program FilesMozilla Firefox<\/strong> directory with the following contents:<\/p>\n<p><em>\/\/ Disable Auto Updates<br \/>\nlockPref(\u201dapp.update.enabled\u201d, false);<br \/>\nlockPref(\u201dextensions.update.enabled\u201d, false);<\/em><\/p>\n<p>Those instruct Firefox to disable the auto update for the browser itself AND any add-in extensions.<\/p>\n<p>Also you must edit <strong>C:Program FilesMozilla Firefoxgreprefs <\/strong>edit the file <strong>all.js <\/strong>and add this to the bottom:<\/p>\n<p><em>\/\/ Process mozilla.cfg in FireFox root directory.<br \/>\npref(\u201dgeneral.config.obscure_value\u201d, 0);<br \/>\npref(\u201dgeneral.config.filename\u201d, \u201cmozilla.cfg\u201d);<\/em><\/p>\n<p>Without that last piece, Firefox won\u2019t process the mozilla.cfg you created.<\/p>\n<p>No reboot needed, and hopefully you\u2019ll never run into this again.<\/p>\n<p>Later on I found a nice website that lists many other features an administrator might want to enforce in a terminal server environment. Check them out here:<\/p>\n<p><a href=\"http:\/\/www.pcc-services.com\/kixtart\/firefox-lockdown.html\">http:\/\/www.pcc-services.com\/kixtart\/firefox-lockdown.html<\/a><\/p>\n<p>Till next time\u2026<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I had an interesting dilemma today. Due to the way some of our internal applications and certain brands of network gear function, our NOC requires Mozilla Firefox on the terminal servers. Over the weekend an update must\u2019ve come out for Firefox, and a user clicked OK. The update crapped out halfway through since they didn\u2019t [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[9,6],"class_list":["post-49","post","type-post","status-publish","format-standard","hentry","category-terminal-server-microsoft","tag-firefox","tag-terminal-server"],"_links":{"self":[{"href":"https:\/\/www.ecimulti.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/49","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ecimulti.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ecimulti.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ecimulti.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ecimulti.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=49"}],"version-history":[{"count":15,"href":"https:\/\/www.ecimulti.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/49\/revisions"}],"predecessor-version":[{"id":325,"href":"https:\/\/www.ecimulti.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/49\/revisions\/325"}],"wp:attachment":[{"href":"https:\/\/www.ecimulti.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=49"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ecimulti.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=49"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ecimulti.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=49"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}