<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Joseph Fisher</title>
	<atom:link href="http://josephpfisher.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://josephpfisher.com</link>
	<description>Self-published, so you know it's good.</description>
	<lastBuildDate>Fri, 09 Dec 2011 19:46:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Java Won&#8217;t Uninstall: Tips for Regular Users and Enterprise Systems Administrators</title>
		<link>http://josephpfisher.com/2011/11/java-wont-uninstall-tips-for-end-users-and-enterprise-systems-administrators/</link>
		<comments>http://josephpfisher.com/2011/11/java-wont-uninstall-tips-for-end-users-and-enterprise-systems-administrators/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 20:51:36 +0000</pubDate>
		<dc:creator>Joseph Fisher</dc:creator>
				<category><![CDATA[Software Problems]]></category>
		<category><![CDATA[bat]]></category>
		<category><![CDATA[enterprise]]></category>
		<category><![CDATA[gpo]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[vbs]]></category>

		<guid isPermaLink="false">http://josephpfisher.com/?p=83</guid>
		<description><![CDATA[In the last few years, the Java developers changed how updates to the Java Runtime Environment (JRE) are installed. Their<a href="http://josephpfisher.com/2011/11/java-wont-uninstall-tips-for-end-users-and-enterprise-systems-administrators/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>In the last few years, the Java developers changed how updates to the Java Runtime Environment (JRE) are installed. Their installer first uninstalls any old version of Java on your computer, and then installs the latest version. This is a good practice, as it keeps outdated versions of JRE from making your system vulnerable to malware and known exploits. But what happens when it fails?</p>
<p><span id="more-83"></span>When the uninstallation utility fails to completely remove an old version of Java, you can find yourself stuck. The Java installer won&#8217;t allow you to install the new version until the old version is eradicated, but running the uninstaller in Add/Remove Programs doesn&#8217;t work. The Java documentation points people to an old Microsoft support page to download the &#8220;Office Installation Cleanup Utility&#8221;, but the utility is no longer published by Microsoft. This can leave users searching around for hours on sketchy 3rd party sites trying to find the tool. There is literally no technical support for end users who experience Java problems. And it&#8217;s no better for enterprise folks either &#8211; that support email address bounces messages. I&#8217;m pretty ticked at the Java developers&#8217; lack of support and buggy software. But being ticked doesn&#8217;t get Java updated.</p>
<p>After a good bit of googling, I eventually found several tools that can help. For those in the enterprise, I have a batch script that you can push as a Group Policy Object (GPO) startup script that will detect if Java is broken or outdated, and upgrade it.</p>
<h2>End Users and Single Computers</h2>
<p>For end users and single machines, the easiest tool is the Microsoft Office Installer Cleanup Utility, available for download at <a href="In the last few years, the Java developers changed how updates to the Java Runtime Environment (JRE) are installed. Their installer first uninstalls any old version of Java on your computer, and then installs the latest version. This is a good practice, as it keeps outdated versions of JRE from making your system vulnerable to malware and known exploits. But what happens when it fails?  When the uninstallation utility fails to completely remove an old version of Java, you can find yourself stuck. The Java installer won't allow you to install the new version until the old version is eradicated, but running the uninstaller in Add/Remove Programs doesn't work. The Java documentation points people to the old Microsoft KB page to download the Office Installation Cleanup Utility, but the utility is no longer published by Microsoft. This can leave users searching around for hours on sketchy 3rd party sites trying to find the tool. There is literally no technical support for end users who experience Java problems. And it's no better for enterprise folks either - that support email address bounces messages. I'm pretty ticked at the Java developers lack of support and buggy software. But being ticked doesn't get Java updated.  After a good bit of googling, I eventually found several tools that can help. For those in the enterprise, I have a batch script that you can push as a Group Policy Object (GPO) startup script that will detect if Java is broken or outdated, and upgrade it.  For end users and single machines, the easiest tool is the Microsoft Office Installer Cleanup Utility, available for download at http://majorgeeks.com/download.php?det=4459">http://majorgeeks.com/download.php?det=4459</a>. After you install this utility, you can run it and see a list of all the software that is presently installed on your system. Note that you do not want to attempt to uninstall something via this utility first. This utility is a last-ditch effort to remove something from your computer. Once you highlight and remove Java, you should be able to install the latest version. Easy as pie.</p>
<h2>For Systems Administrators in the Enterprise</h2>
<p>For the enterprise, it gets more tricky. Since you probably don&#8217;t want to go around to thousands of computers to click through this program every time Java releases an update, you&#8217;ll need to develop some installation scripts. First, you&#8217;ll need to obtain the MSI installer for the latest version of Java. Instructions on how to do this are found here: <span style="font-family: DejaVu Sans,sans-serif;"><span style="font-size: small;"><a href="http://www.edugeek.net/forums/windows/64371-how-create-deployable-java-msi-based-r6-u22.html">http://www.edugeek.net/forums/windows/64371-how-create-deployable-java-msi-based-r6-u22.html</a>.</span></span></p>
<p>Following the guide in the above link, you&#8217;ll want to create a MSI transform file (.MST) for deployment. The transform file will do neat things like bypassing the EULA acceptance, enabling the browser plugin, and disabling the auto-update checks (since you&#8217;ll be pushing out updates on your own, and your users likely do not have administrator rights &#8211; I hope!). To modify MSI&#8217;s, as well as generate the transform files, you&#8217;ll need Orca, which is free, and located here: <a href="http://www.technipages.com/download-orca-msi-editor.html"><span style="font-family: DejaVu Sans,sans-serif;"><span style="font-size: small;">http://www.technipages.com/download-orca-msi-editor.html</span></span></a>.</p>
<p>Now you should have your MSI and MST files ready to go. They need to be stored somewhere our scripts can access. They&#8217;ll run as the computer account if they&#8217;re startup scripts, so the computer will need NTFS rights (if you&#8217;re going SMB). Alternatively, you could potentially hosts this on your intranet WWW site (though I haven&#8217;t tested this).</p>
<p>There are 2 scripts. One is a simple batch script, and the other is a VBS script. The VBS script is called by the batch script, so it, too, will need to be accessible to the computer account. Both scripts require customization for your environment. The VBS script installs Java. The batch script determines if Java needs to be installed.</p>
<p>Without further delay, here&#8217;s the VBS script:</p>
<blockquote><p>&#8216;# Galen Dobbs &#8211; 13:20 23/03/2009<br />
&#8216;# If the current version is not installed, it installs it from the specified path.<br />
&#8216;# Based on a script by &#8216;Daz&#8217; from Appdeploy.com message boards.<br />
&#8216;# http://www.appdeploy.com/messageboards/tm.asp?m=29809</p>
<p>Option Explicit</p>
<p>Dim wshShell, fso, strLogFile, ts, strTempDir, strTempISS, strUnString, tsIn<br />
Dim strUninstLine, CLSID, search5, search6, search7, strJRE1, strDisplayName, strDisplayVersion<br />
Dim strPublisher, strUninstallString, strJREUninstallString, strJREDisplayName<br />
Dim search1, search2, search3, search4, strJREUninstallStringNEW, ret, strUninstCMD<br />
Dim tsISS, strSetupexe, qVal, strComputername, strCurrentVersion, strInstallMST<br />
Dim searchCurVer, CurVerFound, strArrayCount, strLogPath, strInstallCMD, strInstallMSI, strInstallLog</p>
<p>Dim arrayJREDisplayName()<br />
Dim arrayJREUninstallString()</p>
<p>&#8216;# Change this to match the version that you don&#8217;t want to have it uninstall<br />
strCurrentVersion = &#8220;Java(TM) 6 Update 29&#8243;</p>
<p>&#8216;# Set these to the desired log path and current version installer location<br />
strLogPath = &#8220;C:\Java\&#8221;<br />
strInstallMSI = &#8220;\\fileserver\jre1.6.0_29.msi&#8221;<br />
strInstallMST = &#8220;\\fileserver\jre1.6.0_29_1.mst&#8221;</p>
<p>qVal = 0<br />
strArrayCount = 0<br />
ReDim arrayJREDisplayName(strArrayCount)<br />
ReDim arrayJREUninstallString(strArrayCount)</p>
<p>Set wshShell = CreateObject(&#8220;WScript.Shell&#8221;)<br />
Set fso = CreateObject(&#8220;Scripting.FileSystemObject&#8221;)</p>
<p>strComputername = wshShell.ExpandEnvironmentStrings(&#8220;%COMPUTERNAME%&#8221;)</p>
<p>&#8216;# Set this to the appropriate command line settings to do a silent MSI install<br />
strInstallLog = strLogPath &amp; &#8220;Java_Install_&#8221; &amp; strComputername &amp; &#8220;.log&#8221;<br />
strInstallCMD = &#8220;msiexec /I &#8220;&#8221;" &amp; strInstallMSI &amp; &#8220;&#8221;" /t &#8220;&#8221;" &amp; strInstallMST &amp; &#8220;&#8221;" /QN /Lime &#8220;&#8221;" &amp; strInstallLog &amp; &#8220;&#8221;"&#8221;</p>
<p>If Not fso.FolderExists(strLogPath) Then fso.CreateFolder(strLogPath)<br />
strLogFile = strLogPath &amp; &#8220;Java_Uninstall_&#8221; &amp; strComputername &amp; &#8220;.log&#8221;<br />
Set ts = fso.OpenTextFile(strLogFile, 8, True)</p>
<p>ts.WriteLine String(120, &#8220;_&#8221;)<br />
ts.WriteLine String(120, &#8220;¯&#8221;)<br />
ts.WriteLine Now() &amp; &#8221; &#8211; Java Runtime(s) uninstallation started&#8230;&#8221;<br />
ts.WriteLine String(120, &#8220;_&#8221;) &amp; vbCrlf</p>
<p>&#8216;# Generate Registry extracts from &#8216;Uninstall&#8217; keys.<br />
PreFlight()</p>
<p>&#8216;# Kill Java Processes<br />
KillProc()</p>
<p>strTempDir = wshShell.ExpandEnvironmentStrings(&#8220;%temp%&#8221;)<br />
strTempISS = strTempDir &amp; &#8220;\iss&#8221;<br />
strUnString = &#8221; -s -a /s /f1&#8243;<br />
Set tsIn = fso.OpenTextFile(strTempDir &amp; &#8220;\uninstall.tmp&#8221;, 1)</p>
<p>If Not fso.FolderExists(strTempISS) Then fso.CreateFolder(strTempISS)</p>
<p>Do While Not tsIn.AtEndOfStream<br />
strUninstLine = tsIn.ReadLine<br />
CLSID = Mid(strUninstLine, 73, 38)<br />
search5 = Instr(strUninstLine, &#8220;JRE 1&#8243;)<br />
search6 = Instr(strUninstLine, &#8220;]&#8221;)<br />
If search5 &gt; 0 AND search6 &gt; 0 Then<br />
strJRE1 = Replace(Mid(strUninstLine, search5, search6),&#8221;]&#8221;,&#8221;")<br />
End If</p>
<p>On Error Resume Next</p>
<p>strDisplayName = wshShell.RegRead(&#8220;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\&#8221; &amp; CLSID &amp; &#8220;\DisplayName&#8221;)<br />
strDisplayVersion = wshShell.RegRead(&#8220;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\&#8221; &amp; CLSID &amp; &#8220;\DisplayVersion&#8221;)<br />
strPublisher = wshShell.RegRead(&#8220;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\&#8221; &amp; CLSID &amp; &#8220;\Publisher&#8221;)<br />
strUninstallString = wshShell.RegRead(&#8220;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\&#8221; &amp; CLSID &amp; &#8220;\UninstallString&#8221;)</p>
<p>strJREUninstallString = wshShell.RegRead(&#8220;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\&#8221; &amp; strJRE1 &amp; &#8220;\UninstallString&#8221;)<br />
strJREDisplayName = wshShell.RegRead(&#8220;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\&#8221; &amp; strJRE1 &amp; &#8220;\DisplayName&#8221;)</p>
<p>On Error Goto 0</p>
<p>&#8216;Search for presence of Java and Sun in DisplayName and Publisher<br />
search1 = Instr(1, strDisplayName, &#8220;Java&#8221;, 1)<br />
search2 = Instr(1, strPublisher, &#8220;Sun&#8221;, 1)<br />
search3 = Instr(1, strDisplayName, &#8220;J2SE&#8221;, 1)<br />
search4 = Instr(1, strUninstallString, &#8220;setup.exe&#8221;, 1)<br />
search7 = InStr(1, strDisplayName, &#8220;Development&#8221;, 1) + InStr(1, strDisplayName, &#8220;Java DB&#8221;, 1)</p>
<p>&#8216;See if it is the current version<br />
searchCurVer = InStr(1, strDisplayName, strCurrentVersion, 1)</p>
<p>&#8216;If it is, Show that the current version is found<br />
If searchCurVer &gt; 0 Then<br />
CurVerFound = True</p>
<p>ElseIf strJREUninstallString &lt;&gt; &#8220;&#8221; Then<br />
&#8216;# JRE 1 found<br />
strJREUninstallStringNEW = Replace(strJREUninstallString,&#8221; -f&#8221;,&#8221; -s -a /s /f&#8221;)<br />
redim Preserve arrayJREDisplayName(strArrayCount)<br />
redim Preserve arrayJREUninstallString(strArrayCount)<br />
arrayJREDisplayName(strArrayCount) = &#8221; &#8211; Found Old JRE: &#8221; &amp; strDisplayName &amp; &#8220;  &#8211; Version: &#8221; &amp; strDisplayVersion &amp; &#8220;, Uninstalling&#8230;&#8221;<br />
arrayJREUninstallString(strArrayCount) = strJREUninstallStringNEW<br />
strArrayCount = strArrayCount + 1</p>
<p>ElseIf search7 = 0 And search1 &gt; 0 Or search3 &gt; 0 And search2 &gt; 0 Then<br />
strUninstCMD = &#8220;msiexec.exe /x &#8221; &amp; CLSID &amp; &#8221; /norestart /qn&#8221;</p>
<p>If search4 &gt; 0 Then<br />
&#8216;# Old InstallShield setup found<br />
Set tsISS = fso.OpenTextFile(strTempISS &amp; &#8220;\&#8221; &amp; CLSID &amp; &#8220;.iss&#8221;, 2, True)</p>
<p>&#8216;Create Response file for any Java Version<br />
tsISS.WriteLine &#8220;[InstallShield Silent]&#8221;<br />
tsISS.WriteLine &#8220;Version=v6.00.000&#8243;<br />
tsISS.WriteLine &#8220;File=Response File&#8221;<br />
tsISS.WriteLine &#8220;[File Transfer]&#8221;<br />
tsISS.WriteLine &#8220;OverwrittenReadOnly=NoToAll&#8221;<br />
tsISS.WriteLine &#8220;[" &amp; CLSID &amp; "-DlgOrder]&#8221;<br />
tsISS.WriteLine &#8220;Dlg0=&#8221; &amp; CLSID &amp; &#8220;-SprintfBox-0&#8243;<br />
tsISS.WriteLine &#8220;Count=2&#8243;<br />
tsISS.WriteLine &#8220;Dlg1=&#8221; &amp; CLSID &amp; &#8220;-File Transfer&#8221;<br />
tsISS.WriteLine &#8220;[" &amp; CLSID &amp; "-SprintfBox-0]&#8221;<br />
tsISS.WriteLine &#8220;Result=1&#8243;<br />
tsISS.WriteLine &#8220;[Application]&#8221;<br />
tsISS.WriteLine &#8220;Name=Java 2 Runtime Environment, SE v1.4.0_01&#8243;<br />
tsISS.WriteLine &#8220;Version=1.4.0_01&#8243;<br />
tsISS.WriteLine &#8220;Company=JavaSoft&#8221;<br />
tsISS.WriteLine &#8220;Lang=0009&#8243;<br />
tsISS.WriteLine &#8220;[" &amp; CLSID &amp; "-File Transfer]&#8221;<br />
tsISS.WriteLine &#8220;SharedFile=YesToAll&#8221;<br />
tsISS.Close</p>
<p>strSetupexe = Left(strUninstallString, search4 + 9)<br />
strUninstCMD =  strSetupexe &amp; strUnString &amp; Chr(34) &amp; strTempISS &amp; &#8220;\&#8221; &amp; CLSID &amp; &#8220;.iss&#8221; &amp; Chr(34)<br />
End If</p>
<p>redim Preserve arrayJREDisplayName(strArrayCount)<br />
redim Preserve arrayJREUninstallString(strArrayCount)<br />
arrayJREDisplayName(strArrayCount) = &#8221; &#8211; Found Old JRE: &#8221; &amp; strDisplayName &amp; &#8220;    &#8211; Version: &#8221; &amp; strDisplayVersion &amp; &#8220;, Uninstalling&#8230;&#8221;<br />
arrayJREUninstallString(strArrayCount) = strUninstCMD<br />
strArrayCount = strArrayCount + 1</p>
<p>End If</p>
<p>Loop</p>
<p>tsIn.Close</p>
<p>Dim I<br />
If CurVerFound AND strArrayCount &gt; 0 Then<br />
ts.Writeline Now() &amp; &#8221; &#8211; Current Version: &#8221; &amp; strCurrentVersion &amp; &#8221; found, continuing with uninstalls&#8230;&#8221;<br />
For I = LBOUND(arrayJREDisplayName) to UBOUND(arrayJREDisplayName)<br />
ts.WriteLine Now() &amp; arrayJREDisplayName(I)<br />
ts.WriteLine Now() &amp; &#8221; &#8211; Uninstall String sent: &#8221; &amp; arrayJREUninstallString(I)<br />
ret = wshShell.Run(arrayJREUninstallString(I) , 0, True)<br />
ts.WriteLine Now() &amp; &#8221; &#8211; Return: &#8221; &amp; ret<br />
If ret &lt;&gt; 0 And ret &lt;&gt; 3010 Then qVal = 1<br />
Next</p>
<p>ElseIf CurVerFound AND strArrayCount = 0 Then<br />
ts.WriteLine Now() &amp; &#8221; &#8211; Current version, &#8221; &amp; strCurrentVersion &amp; &#8220;, found.&#8221;<br />
ts.WriteLine Now() &amp; &#8221; &#8211; No Old Java Runtime versions are installed.&#8221;<br />
qVal = 99</p>
<p>ElseIf Not CurVerFound Then</p>
<p>ts.WriteLine Now() &amp; &#8221; &#8211; Current Java version, &#8221; &amp; strCurrentVersion &amp; &#8220;, not found, installing it.&#8221;<br />
ts.WriteLine Now() &amp; &#8221; &#8211; Running Command: &#8221; &amp; strInstallCMD<br />
ret = wshShell.Run(strInstallCMD , 0, True)<br />
If ret &lt;&gt; 0 AND ret&lt;&gt; 3010 Then<br />
ts.WriteLine Now() &amp; &#8221; &#8211; Failed to Install Java, see &#8221; &amp; strInstallLog &amp; &#8221; for more details.  Exiting Script.&#8221;<br />
qVal = 1<br />
ElseIf strArrayCount &gt; 0 Then<br />
ts.WriteLine Now() &amp; &#8221; &#8211; Successfully installed &#8221; &amp; strCurrentVersion &amp; &#8220;, and logged to &#8221; &amp; strInstallLog &amp; &#8220;.&#8221;<br />
For I = LBOUND(arrayJREDisplayName) to UBOUND(arrayJREDisplayName)<br />
ts.WriteLine Now() &amp; arrayJREDisplayName(I)<br />
ts.WriteLine Now() &amp; &#8221; &#8211; Uninstall String sent: &#8221; &amp; arrayJREUninstallString(I)<br />
ret = wshShell.Run(arrayJREUninstallString(I) , 0, True)<br />
ts.WriteLine Now() &amp; &#8221; &#8211; Return: &#8221; &amp; ret<br />
If ret &lt;&gt; 0 And ret &lt;&gt; 3010 Then qVal = 1<br />
Next<br />
ElseIf strArrayCount = 0 Then<br />
ts.WriteLine Now() &amp; &#8221; &#8211; Successfully installed &#8221; &amp; strCurrentVersion &amp; &#8220;, and logged to &#8221; &amp; strInstallLog &amp; &#8220;.&#8221;<br />
ts.WriteLine Now() &amp; &#8221; &#8211; No Old Java Runtime versions are installed.&#8221;<br />
qVal = 99<br />
End If<br />
End If</p>
<p>ts.WriteLine String(120, &#8220;_&#8221;)<br />
ts.WriteLine String(120, &#8220;¯&#8221;)<br />
ts.Close<br />
fso.DeleteFolder(strTempISS)<br />
fso.DeleteFile(strTempDir &amp; &#8220;\uninstall.tmp&#8221;)</p>
<p>WScript.Quit(qVal)</p>
<p>Sub PreFlight()<br />
&#8216;# Creates temp files containing extracts from registry &#8216;Uninstall&#8217; keys.<br />
Dim wshShell, fso, sTemp<br />
Set wshShell = CreateObject(&#8220;WScript.Shell&#8221;)<br />
Set fso = CreateObject(&#8220;Scripting.FileSystemObject&#8221;)<br />
sTemp = wshShell.ExpandEnvironmentStrings(&#8220;%temp%&#8221;)<br />
wshShell.Run &#8220;REGEDIT /E %temp%\registry.tmp HKEY_LOCAL_MACHINE\SOFTWARE\microsoft\windows\currentversion\uninstall&#8221;, 0, True<br />
wshShell.Run &#8220;cmd /c type %temp%\registry.tmp | find /i &#8220;&#8221;{&#8220;&#8221; | find /i &#8220;&#8221;}]&#8221;" &gt; %temp%\uninstall.tmp &#8220;, 0, True<br />
wshShell.Run &#8220;cmd /c type %temp%\registry.tmp | find /i &#8220;&#8221;JRE 1&#8243;&#8221; &gt;&gt; %temp%\uninstall.tmp &#8220;, 0, True<br />
If Not fso.FileExists(sTemp &amp; &#8220;\uninstall.tmp&#8221;) Then<br />
ts.WriteLine Now() &amp; &#8221; &#8211; No input &#8211; %temp%\uninstall.tmp Reg extract not created.&#8221;<br />
ts.WriteLine String(120, &#8220;_&#8221;)<br />
ts.WriteLine String(120, &#8220;¯&#8221;)<br />
ts.Close<br />
WScript.Quit(1)<br />
End If<br />
End Sub</p>
<p>Sub KillProc()<br />
&#8216;# kills jusched.exe and jqs.exe if they are running.  These processes will cause the installer to fail.<br />
Dim wshShell<br />
Set wshShell = CreateObject(&#8220;WScript.Shell&#8221;)<br />
wshShell.Run &#8220;Taskkill /F /IM jusched.exe /T&#8221;, 0, True<br />
wshShell.Run &#8220;Taskkill /F /IM jqs.exe /T&#8221;, 0, True<br />
End Sub</p></blockquote>
<p>By the way, when you copy/paste VBS text from the internet, make sure your font is converting (straight) quotes into smart (angled) quotes. If you get errors running the VBS, the character conversion could be the cause.</p>
<p>You&#8217;ll notice the script is commented, and includes instructions to modify the path to the MSI &amp; MST files, as well as define the current version number. That&#8217;s the only modification this script needs.</p>
<p>If you run this script more than once on a good version of Java, it will break, and require a forceful uninstallation. That&#8217;s why we&#8217;ll call this script with a batch script that checks to see whether we even need to attempt an installation.</p>
<blockquote><p>@echo off<br />
REM We&#8217;ll check for the java executable. If it&#8217;s missing, Java is either broken or not installed.<br />
if exist &#8220;C:\Program Files (x86)\Java\jre6\bin\java.exe&#8221; goto :install<br />
if exist &#8220;C:\Program Files\Java\jre6\bin\java.exe&#8221; goto :install</p>
<p>REM If we get to this point without being forwarded to the install section, we can assume that the Java install is broken. Let&#8217;s completely remove it.<br />
reg query hklm\software\classes\installer\products /f &#8220;java(tm) 6&#8243; /s | find &#8220;HKEY_LOCAL_MACHINE&#8221; &gt; C:\windows\logs\deljava.txt<br />
for /f &#8220;tokens=* delims= &#8221; %%a in (C:\Windows\logs\deljava.txt) do reg delete %%a /f<br />
del C:\windows\logs\deljava.txt<br />
reg delete &#8220;HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment&#8221; /f<br />
reg delete &#8220;HKEY_LOCAL_MACHINE\SOFTWARE\wow6432node\JavaSoft\Java Runtime Environment&#8221; /f</p>
<p>REM Java should be completely removed. Now, let&#8217;s reinstall it.<br />
REM The Java installer VBS wants C:\Java to exist for logging, so let&#8217;s make that.<br />
mkdir C:\Java<br />
REM Now let&#8217;s call the installation VBS.<br />
call &#8220;\\fileserver\path\to\java_install.vbs&#8221;<br />
echo &#8220;%time% %date% &#8212; Broken Java detected. Uninstalled and re-installed&#8221; &gt;&gt; &#8220;C:\Windows\logs\java1.txt&#8221;<br />
REM And we should be done<br />
goto end</p>
<p>:install<br />
REM We know java is installed correctly, let&#8217;s see if it needs an update.<br />
if exist &#8220;C:\Windows\logs\java1.txt&#8221; goto end<br />
REM Change java1.txt with each new version. So next update, we&#8217;ll create and check for logfiles called java2.txt<br />
REM If the log file doesn&#8217;t exist, we can assume the current version hasn&#8217;t been installed. Let&#8217;s install it.<br />
REM The Java installer VBS wants C:\Java to exist for logging, so let&#8217;s make that first.<br />
mkdir C:\Java<br />
call &#8220;\\fileserver\path\to\java_install.vbs&#8221;<br />
REM Now Java should be installed with the latest version.<br />
REM Let&#8217;s create a log file to check for next time we run this script.<br />
echo &#8220;%time% %date% &#8212; Java installed&#8221; &gt;&gt; &#8220;C:\Windows\logs\java1.txt&#8221;<br />
:end</p></blockquote>
<p>As you can see, this is heavily commented. The tricky part is that this script needs to create and look for a log file. If the log file exists, it knows it has already run the script. If the log file doesn&#8217;t exist, it knows it should try to install. The tricky part is when you get a new version of Java, you&#8217;ll need to modify the VBS with the updated MSI/MSTs, and you&#8217;ll need to update the log file that the batch script looks for. So if this version uses C:\Windows\logs\java1.txt, the new version should create and look for C:\Windows\logs\java2.txt.</p>
<p>So there you have it. With this in my shop, we&#8217;re able to deploy Java via startup scripts, determine if the installation is broken and reinstall it, and upgrade it. We went from having dozens of machines break at every update and require our intervention, to none. It is still pretty hands on, but until the Java developers manage to create a functional installation utility, this is the best we&#8217;ve got.</p>
<p>If you have any tips, troubles, hints, etc., please leave them in the comments below. Happy travels fellow sysadmins!</p>
]]></content:encoded>
			<wfw:commentRss>http://josephpfisher.com/2011/11/java-wont-uninstall-tips-for-end-users-and-enterprise-systems-administrators/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Video: (TED) Ever wonder why people create viruses?</title>
		<link>http://josephpfisher.com/2011/07/video-ted-ever-wonder-why-people-create-viruses/</link>
		<comments>http://josephpfisher.com/2011/07/video-ted-ever-wonder-why-people-create-viruses/#comments</comments>
		<pubDate>Tue, 19 Jul 2011 18:16:03 +0000</pubDate>
		<dc:creator>Joseph Fisher</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://josephpfisher.com/?p=77</guid>
		<description><![CDATA[Mikko Hypponen: Fighting viruses, defending the net]]></description>
			<content:encoded><![CDATA[<p><a href='http://www.ted.com/talks/mikko_hypponen_fighting_viruses_defending_the_net.html?awesm=on.ted.com_Hypponen&#038;utm_campaign=&#038;utm_medium=on.ted.com-static&#038;utm_source=reddit.com&#038;utm_content=awesm-bookmarklet' >Mikko Hypponen: Fighting viruses, defending the net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://josephpfisher.com/2011/07/video-ted-ever-wonder-why-people-create-viruses/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Your Windows Password is the Digital Equivalent of a Screen Door. Turn it into a Bank Vault (for Free)!</title>
		<link>http://josephpfisher.com/2011/07/your-windows-password-is-the-digital-equivalent-of-a-screen-door-turn-it-into-a-bank-vault-for-free/</link>
		<comments>http://josephpfisher.com/2011/07/your-windows-password-is-the-digital-equivalent-of-a-screen-door-turn-it-into-a-bank-vault-for-free/#comments</comments>
		<pubDate>Tue, 12 Jul 2011 21:35:22 +0000</pubDate>
		<dc:creator>Joseph Fisher</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[encryption]]></category>

		<guid isPermaLink="false">http://josephpfisher.com/?p=72</guid>
		<description><![CDATA[Imagine pulling in to your driveway one evening after a long day at work only to realize that your front<a href="http://josephpfisher.com/2011/07/your-windows-password-is-the-digital-equivalent-of-a-screen-door-turn-it-into-a-bank-vault-for-free/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p><a href="http://josephpfisher.com/wp-content/uploads/2011/07/tc.png"><img class="alignleft size-medium wp-image-73" style="margin: 3px;" title="tc" src="http://josephpfisher.com/wp-content/uploads/2011/07/tc-300x300.png" alt="" width="210" height="210" /></a>Imagine pulling in to your driveway one evening after a long day at work only to realize that your front door has been kicked in. After the police arrive, you discover that you have been burgled. That new shiny 50” plasma is gone. Your house is a mess. And there’s a tangled jungle of cables where your computer once sat.</p>
<p>It happens every day in America. All of us have door locks, and many of us even have sophisticated alarm systems to deter theft. But even the best door lock and alarm system can be thwarted, and chances are you’re not employing bank vault level security at your front porch. Most of us try to offset the risk of theft by purchasing insurance, renting safety deposit boxes, or even deploying our very own safe. But what steps do we take to protect our computer?<span id="more-72"></span></p>
<p>Do you ever buy anything online? How about pay your bills or visit your bank’s web site? Ever logged in to your office network from home to finish a project or grab a file? If a burglar took your plasma, that’s easy enough to replace. But with your computer, he potentially has access to some very private data. And it’s trivially easy to gain access to a computer that solely relies upon the Windows logon password for protection. That’s why every home computer user needs to use encryption.</p>
<p>These days it’s easier than ever to employ encryption software on your personal computer. And best of all, it’s completely free. With an <a href="http://www.truecrypt.org/" target="_blank">open source utility called TrueCrypt</a>, you can encrypt your entire hard drive with only a few quick clicks. With an encrypted hard drive, it takes decades for a very dedicated attacker to gain access to your files.</p>
<p>Simply download and run the TrueCrypt installer. Once installed, click on “System” and “Encrypt System Partition/Drive” and walk through the wizard to create your passphrase and begin the encryption process. It may take several hours for the drive to be fully encrypted, depending on the size of your hard drive as well as your computer’s specifications. But the initial setup should only take 15 minutes. You’ll be prompted to create a recovery disc, which is helpful in case anything goes wrong. Of course you’ll still need your password to unlock the computer, though.</p>
<p>And just like that, you went from a screen door to a bank vault.</p>
<p>TrueCrypt can also be used to encrypt external hard drives, files, and even build in a decoy operating system. The decoy operating system is a great feature, as highlighted by <a href="http://xkcd.com/538/" target="_blank">this XKCD comic</a>. With a decoy OS, you’ll have two difference passwords. One password will unlock one operating system, while the other password unlocks the other one. Both operating systems operate completely independent of each other. This is essential for applications which require plausible deniability. If under duress, one can safely divulge password “A”, while keeping the contents of operating system “B” securely hidden. But that’s a bit more complex, and possibly a topic for another day.</p>
<p>Note that TrueCrypt full disk encryption only works on standard Windows setups. People with multiple operating systems, or other operating systems such as OSX or Linux cannot use TrueCrypt full disk encryption.</p>
]]></content:encoded>
			<wfw:commentRss>http://josephpfisher.com/2011/07/your-windows-password-is-the-digital-equivalent-of-a-screen-door-turn-it-into-a-bank-vault-for-free/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Easily Keep your Windows Software Patched with One Click (for free!)</title>
		<link>http://josephpfisher.com/2011/06/easily-keep-your-windows-software-patched-with-one-click-for-free/</link>
		<comments>http://josephpfisher.com/2011/06/easily-keep-your-windows-software-patched-with-one-click-for-free/#comments</comments>
		<pubDate>Sun, 19 Jun 2011 19:36:13 +0000</pubDate>
		<dc:creator>Joseph Fisher</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[malware]]></category>
		<category><![CDATA[Patches]]></category>

		<guid isPermaLink="false">http://josephpfisher.com/?p=68</guid>
		<description><![CDATA[Don’t you hate the endless stream of software updates? Did you know that one of the most common reason people<a href="http://josephpfisher.com/2011/06/easily-keep-your-windows-software-patched-with-one-click-for-free/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p><a href="http://josephpfisher.com/wp-content/uploads/2011/06/ninite.png"><img class="alignleft size-medium wp-image-69" style="margin: 0px 5px; border: 1px solid black;" title="ninite" src="http://josephpfisher.com/wp-content/uploads/2011/06/ninite-300x202.png" alt="" width="300" height="202" /></a>Don’t you hate the endless stream of software updates? Did you know that one of the most common reason people get viruses and malware is because they’re running out-of-date software? For years Linux users had software repositories where they could update everything with a single click. Now Windows users have access to a tool with similar results, called <a href="http://ninite.com/">Ninite</a>.<span id="more-68"></span></p>
<p>Many people speculate that since their personal computer holds no state secrets, databases of credit card numbers, or other high value sensitive information, they’re at a low risk. Unfortunately this is not the case. For most people, the most valuable asset that is worth the hacker’s time is your internet connection’s bandwidth. Hackers use automated tools that scan thousands of random computers for security holes, and attack whatever vulnerabilities they find. Using these tools, a hacker can build an army of infected machines to do his bidding. One common use is to launch a distributed denial of service attack (DDoS) against websites. By directing all the infected machines in his “army” to a specific website, the hacker can overload the web site’s internet connection with bogus requests, making it unreachable for legitimate visitors. Of course the hacker could also install keyloggers and traffic sniffers to intercept your passwords to banking websites, in an attempt to steal your identity or money. So unfortunately, the everyday Joe is absolutely a juicy target for hackers.</p>
<p>Security experts estimate that on average, <a href="http://isc.sans.org/diary.html?storyid=4721">it takes a mere 4 minutes to become infected with a virus when connecting an unpatched Windows system directly to the internet</a>.  If you look at network log files, you’ll see that there’s a constant stream of computers all over the world that are constantly probing your computer to see if there are any exploitable vulnerabilities. Protecting against this requires several layers of security, many of which are transparent to the home user. Many internet service providers (ISPs) block common exploited network ports from ever getting out to the internet. If you have a home router (necessary for sharing your internet connection with more than one computer), chances are good you have a firewall in place that will reject all internet traffic that you didn’t initiate. And finally, ensuring your system is up to date with its security patches will help stop anything that gets past the first two layers of defense.</p>
<p>These days we’re running more exploitable software than ever. Web browsing has become such an interactive experience that it has required software developers build many different systems to deliver different types of content. Most people watch YouTube videos, which requires the Adobe Flash Player plugin. Many people visit websites that rely on Java to provide additional functionality beyond static text and images. Some download PDF’s for printing or filling out forms. All of these software titles are very heavily exploited by hackers to install viruses and malware. Adobe releases patches for Flash player practically every week. Keeping up with 10 or 15 different programs and their update cycle is far too much of a burden on anyone.</p>
<p>With Ninite, you simply run a single executable installer and all your software will automatically be updated to the latest version. You don’t have to download a new version of the installer each time – the old one will continue to provide the latest updates. You can even set up a scheduled task (on Windows 7, go to Start and type “Task Scheduler”) to run the installer on a daily or weekly basis that doesn’t require you to manually launch the updater.</p>
<p>If you’re running Windows, I very strongly recommend you install Ninite and set it to run regularly. Keeping your system patched is one of the biggest things you can do to protect yourself online. And with <a href="http://ninite.com/">Ninite</a>, the process is amazingly easy.</p>
]]></content:encoded>
			<wfw:commentRss>http://josephpfisher.com/2011/06/easily-keep-your-windows-software-patched-with-one-click-for-free/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Watch Out for &#8220;Scareware&#8221; Viruses (Even on Macs!)</title>
		<link>http://josephpfisher.com/2011/05/watch-out-for-scareware-viruses-even-on-macs/</link>
		<comments>http://josephpfisher.com/2011/05/watch-out-for-scareware-viruses-even-on-macs/#comments</comments>
		<pubDate>Fri, 27 May 2011 23:07:00 +0000</pubDate>
		<dc:creator>Joseph Fisher</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[malware]]></category>
		<category><![CDATA[scareware]]></category>
		<category><![CDATA[virus]]></category>

		<guid isPermaLink="false">http://josephpfisher.com/?p=54</guid>
		<description><![CDATA[I&#8217;ve been seeing more and more people fall victim to the fake anti-virus viruses that have exploded in popularity in<a href="http://josephpfisher.com/2011/05/watch-out-for-scareware-viruses-even-on-macs/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p><a href="http://josephpfisher.com/wp-content/uploads/2011/05/twitter_FastAntiVirus.png"><img class="alignleft size-medium wp-image-55" style="border: 1px solid black; margin: 0px 5px;" title="Typical Scareware Virus" src="http://josephpfisher.com/wp-content/uploads/2011/05/twitter_FastAntiVirus-300x251.png" alt="" width="300" height="251" /></a>I&#8217;ve been seeing more and more people fall victim to the fake anti-virus viruses that have exploded in popularity in the last few years. With a blending of social engineering tactics, in addition to traditional technical exploits, &#8220;scareware&#8221; viruses have seen an exceptional level of success.  Preying on users who are perhaps unaware of what (if any) anti-malware applications are installed on their systems; &#8220;scareware&#8221; viruses trick users by appearing to be legitimate anti-malware programs.<span id="more-54"></span></p>
<p><a href="#recs">Jump to Anti-Malware Program Recommendations</a></p>
<p>When visiting an infected web site, these viruses pop up and take control of the browser window. They display a list of files that are supposedly infected, and prompt the user to clean or remove the files. When the user attempts to clean the &#8220;infected&#8221; files, the virus then installs itself on the computer. The damage depends on the particular variant, but most will pester the user to purchase a full subscription to the program. Unfortunately when a user actually does try to buy the software, their credit card information is instead stolen and used for identity theft purposes. Additionally, many &#8220;scareware&#8221; viruses install backdoor trojans, which allows a hacker to access anything he wants on your system, and often times recruit your computer to participate in a botnet (swarm of zombie infected computers that can be directed to take down a web site by flooding it with bogus requests).</p>
<p>While it is tempting to try to “click your way out” of these types of scams,<strong> doing anything less than completely exiting your web browser will result in infection</strong>. The buttons that say “cancel” or “exit” will actually register your mouse click as “Ok – install this” by the computer. That makes these viruses particularly frustrating!</p>
<p>There are a few things you can do to protect yourself from these types of viruses:</p>
<ul>
<li><strong>Know what anti-malware programs you have running on your computer</strong> (you do run some anti-virus program, right?), so that you can recognize its logos, graphics, and name. When you see a “scareware” virus while browsing the internet, you’ll notice that the name and/or interface are inconsistent with what you’re presently using.</li>
<li><strong>Use a 3<sup>rd</sup> party web browser</strong>, such as Firefox or Chrome. While this won’t be enough by itself, running a 3<sup>rd</sup> party browser is safer, and you’re less likely to be infected by simply viewing an infected web site.</li>
<li><strong>If you believe you’re looking at a “scareware” virus web site, immediately close your web browser via the taskbar</strong> (bottom of the screen). Tricky viruses will sometimes take control of the whole window, and when you think you’re clicking an “exit” button, you’re really clicking a picture of an “exit” button. The virus then actually registers your click as “install the virus”. It’s very sneaky!</li>
<li><strong>If you run Firefox, install the NoScript plugin</strong>. At first it’s a bit of a pain to use, because you have to build a whitelist of sites. NoScript will automatically block certain elements of web pages that can harm your computer. Unfortunately, that includes many great features, such as embedded graphics and videos. So when you visit a site for the first time, NoScript will block these elements. If you trust the site, you can quickly whitelist the web site (and it will remember your choice), and all functionality is enabled. If after whitelisting a site, you immediately experience a “scareware” pop-up, you’ll be more likely to deduce it’s a virus. This is also very effective at blocking cross site scripting attacks, which are very popular these days.</li>
</ul>
<p>So how do you recognize a “scareware” virus? You’ll first encounter this type of virus while surfing web sites. An infected site may even be well respected, just unfortunately a victim of hacking (or serving an infected ad on a hacked ad network). Suddenly a new window will pop up or fill the screen indicating that a virus scan is being conducted. Within a few seconds, a list of files supposedly on your computer, and supposedly infected with malware will be displayed. You’re prompted to either clean the files, or download an anti-malware application that purports to be able to clean the infestation. You can spot “scareware” viruses by observing the following:</p>
<ul>
<li>The scan that is conducted takes only a few seconds. Really the “scareware” virus is simply playing a video – it isn’t scanning anything. True malware scans take anywhere from 10 or 15 minutes to several hours to complete.</li>
<li>The graphics and sometimes the name of the scanner aren’t anti-malware programs that you know and use.</li>
</ul>
<p><a href="http://josephpfisher.com/wp-content/uploads/2011/05/macguard.jpg"><img class="size-medium wp-image-59 alignleft" style="border: 1px solid black; margin-left: 5px; margin-right: 5px;" title="Typical Mac Scareware Virus" src="http://josephpfisher.com/wp-content/uploads/2011/05/macguard-295x300.jpg" alt="" width="295" height="300" /></a>It used to be that if you ran an alternative operating system like Apple’s Mac OS X, you were immune to viruses and other malware. Unfortunately, those days are coming to an end.</p>
<p>Last week, news began circulating that the first “scareware” virus for Mac had gone mainstream. While the Apple version is somewhat less sophisticated (it still requires the user to walk through an installer, unlike some Windows viruses), it is still easy to get tricked.</p>
<p>It&#8217;s now important that all computer users, not just Windows users, need to install some form of anti-virus protection. While the Mac operating system is safer by design, it can still become infected with or transmit viruses.</p>
<p><a name="recs"><strong>Recommended Anti-Malware Software</strong></a></p>
<p><span style="text-decoration: underline;"><em>For All Operating Systems</em></span></p>
<p>Mozilla FireFox (<a href="http://getfirefox.com/">http://getfirefox.com</a>)</p>
<p>NoScript Plugin for Firefox (<a href="http://noscript.net/">http://noscript.net</a>)</p>
<p><span style="text-decoration: underline;"><em>Apple Mac OS X</em></span></p>
<p>Sophos Anti-Virus for Mac – Free (<a href="http://www.sophos.com/en-us/products/free-tools/sophos-antivirus-for-mac-home-edition.aspx">http://www.sophos.com/en-us/products/free-tools/sophos-antivirus-for-mac-home-edition.aspx</a>)</p>
<p><span style="text-decoration: underline;"><em>Windows</em></span></p>
<p>Avira Anti-Virus – Free (<a href="http://www.avira.com/en/avira-free-antivirus">http://www.avira.com/en/avira-free-antivirus</a>)</p>
<p>Windows Defender – Free (<a href="http://www.microsoft.com/windows/products/winfamily/defender/default.mspx">http://www.microsoft.com/windows/products/winfamily/defender/default.mspx</a>)</p>
<p>MalwareBytes Anti-Malware – Free (<a href="http://www.malwarebytes.org/products/malwarebytes_free">http://www.malwarebytes.org/products/malwarebytes_free</a>) (Note: This is more of a cleanup utility than a real-time protector)</p>
]]></content:encoded>
			<wfw:commentRss>http://josephpfisher.com/2011/05/watch-out-for-scareware-viruses-even-on-macs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Easily Make and Remember Good Passwords</title>
		<link>http://josephpfisher.com/2010/12/easily-make-and-remember-good-passwords/</link>
		<comments>http://josephpfisher.com/2010/12/easily-make-and-remember-good-passwords/#comments</comments>
		<pubDate>Mon, 20 Dec 2010 01:48:51 +0000</pubDate>
		<dc:creator>Joseph Fisher</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[password]]></category>

		<guid isPermaLink="false">http://josephpfisher.com/?p=48</guid>
		<description><![CDATA[I have over 100 passwords that I have to keep track of between work and everything else. If you&#8217;re as<a href="http://josephpfisher.com/2010/12/easily-make-and-remember-good-passwords/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p><a href="http://josephpfisher.com/wp-content/uploads/2010/12/password_star.jpg"><img class="alignleft size-medium wp-image-49" style="border: 1px solid black; margin: 2px 4px;" title="password_star" src="http://josephpfisher.com/wp-content/uploads/2010/12/password_star-300x214.jpg" alt="" width="180" height="128" /></a>I have over 100 passwords that I have to keep track of between work and everything else. If you&#8217;re as forgetful as I am, this can be a daunting list! After trying many different password management strategies, I&#8217;ve finally landed on one that&#8217;s easy for me to work with, and allows for a strong unique password for each web site I visit. Best of all, I only have to remember one single password.</p>
<p>Before we get into the details of password management best practices, I&#8217;d like to take a moment to remind you as to why it&#8217;s important to have unique and strong passwords. Recently Georgia Tech researchers published a study that shows that with modern computing power, <a href="http://www.cnn.com/2010/TECH/innovation/08/20/super.passwords/index.html?iref=obnetwork" target="_blank">it&#8217;s possible to crack 8-character passwords in under two hours</a>. But by adding 4 extra character, the length of time increases to over 17,000 years. That&#8217;s because each additional character increases the possibilities (and subsequently the number of passwords to try) by approximately 95 times.</p>
<p><span id="more-48"></span>Unique passwords are very important as well. Last week Gawker announced that <a href="http://www.google.com/hostednews/ap/article/ALeqM5gw8E01I9SZLjKV_5YbqEJ-YcxeHw?docId=a52f686a9adc441a8dc0cf6d8a7a8bdc" target="_blank">approximately 1.4 million passwords had been compromised</a> in a hack attack. The list of account usernames and passwords is now circulating on ThePirateBay, available to anyone who downloads the torrent. Anybody who uses the same username and password from Gawker on other websites is now at the risk of having these accounts compromised.</p>
<p><strong>How to Make a Strong and Memorable Password</strong></p>
<p>My favorite method of creating a strong password is to first think of the lyrics of a memorable song. In keeping with the Christmas season, let&#8217;s go with Deck the Halls. We only need a couple of verses:</p>
<blockquote><p>Deck the halls with boughs of holly,<br />
Fa la la la la, la la la la.<br />
Tis the season to be jolly,<br />
Fa la la la la, la la la la.</p></blockquote>
<p>Now let&#8217;s take the first letter of each word. Since there would be a lot of repeated characters with the fa-la-la&#8217;s, I&#8217;m going to skip those. We&#8217;re left with:</p>
<blockquote><p>DTHWBOHTTSTBJ</p></blockquote>
<p>Now, let&#8217;s modify the case so it&#8217;s not all caps or all lower case:</p>
<blockquote><p>DthwBOHttsTBJ</p></blockquote>
<p>Next, let&#8217;s swap out some letters with numbers. To can become the number 2. H&#8217;s look a little like the number 4, so that&#8217;s easy to replace. O&#8217;s can become zeros.</p>
<blockquote><p>Dt4wB04tts2BJ</p></blockquote>
<p>Now, let&#8217;s add a symbol. In between the verses is a good, memorable spot:</p>
<blockquote><p>Dt4wB04#tts2BJ</p></blockquote>
<p>And we&#8217;re done! We have a secure, yet easy to remember (and festive) password, that will take 17,000+ years to crack.</p>
<p><strong>Managing All Those Passwords</strong></p>
<p>Remember when I said I managed over a hundred complex passwords? No, I&#8217;m not singing to myself all day trying to remember when I swapped out an &#8220;H&#8221; for a 4. I actually maintain a spreadsheet with all of my passwords. &#8220;But Joey, that&#8217;s not secure!&#8221; you may claim. You&#8217;d be right! Simply storing a spreadsheet with the keys to the castle is a terrible idea. But storing an <em>encrypted</em> spreadsheet is quite safe. By the way -  setting a password on your Word or Excel document is <strong>not</strong> encrypting it. Those passwords are surprisingly easy to crack. A quick Google search shows 7.6 million results for &#8220;<a href="http://www.google.com/#hl=en&amp;expIds=25657&amp;sugexp=ldymls&amp;xhr=t&amp;q=word+password+recovery&amp;cp=8&amp;qe=d29yZCBwYXM&amp;qesig=hABzt4u53KSN0x1Iu62pcA&amp;pkc=AFgZ2tlAn21jbIoJMjNWdbA53zuauL8WBvodmClX4-LAvng5ChvDCIrgnBx14PAaZ-nxESnxvcKyiy7lcqSyMh0utZLUzOrNUA&amp;pf=p&amp;sclient=psy&amp;site=&amp;source=hp&amp;aq=0&amp;aqi=&amp;aql=&amp;oq=word+pas&amp;gs_rfai=&amp;pbx=1&amp;fp=ca05a7bb65e82229" target="_blank">recover word password</a>&#8220;.</p>
<p>With a password encrypted spreadsheet, I only have to remember the encryption password. All of the other passwords for everything I do online are stored on the spreadsheet. This way, I can have long, unique, strong passwords for every single service that requires a password. If one gets hacked, all of my other sites stay secure.</p>
<p>Encrypting and decrypting files doesn&#8217;t require expensive software, either. There&#8217;s an excellent program called <a href="http://www.truecrypt.org/" target="_blank">TrueCrypt</a> that&#8217;s available for free. It&#8217;s very powerful, but also a little different than you might think. It doesn&#8217;t encrypt files, but rather creates an encrypted &#8220;container&#8221;. The container, when unencrypted with TrueCrypt, looks like a USB thumb drive to your computer. You can safely save files on the container, and use TrueCrypt to unload and load it. TrueCrypt has a handy quick-start guide on their website, which I definitely recommend you read if you&#8217;re going to go the encrypted spreadsheet route.</p>
<p><strong>But There is Another Way&#8230;</strong></p>
<p>While I prefer the hands on method of creating spreadsheets and encrypting files myself, I&#8217;ll bet some of you would rather have this process automated. There&#8217;s a spectacular program out there called <a href="http://passwordsafe.sourceforge.net/" target="_blank">PasswordSafe</a> that will create and manage your password database. It&#8217;s encrypted using one of the algorithms available in TrueCrypt. It also features a password generator, as well as the 1-click ability to copy a password to the clipboard. That&#8217;s very helpful when you want to login to a website &#8211; simply click a button, switch to the web site, and paste the password in the box.</p>
<p>For the true gadget lovers out there, we have yet another solution. There are several USB drives on the market that feature all kinds of hardware-level encryption. Some use biometric inputs (fingerprint) to determine if they should unlock or not. <a href="https://www.ironkey.com/" target="_blank">IronKey</a> is one example of a hardware-encrypted device. Be forewarned, prices on cutting edge encrypted storage media can vary widely. Of course it&#8217;s not at all necessary to spend a week&#8217;s salary in order to keep your passwords secure. With PasswordSafe or an encrypted spreadsheet, your passwords will be securely tucked away from prying eyes, with no out of pocket cost.</p>
]]></content:encoded>
			<wfw:commentRss>http://josephpfisher.com/2010/12/easily-make-and-remember-good-passwords/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Guide: Don&#8217;t Fall Victim to Phishing</title>
		<link>http://josephpfisher.com/2010/12/how-to-guide-dont-fall-victim-to-phishing/</link>
		<comments>http://josephpfisher.com/2010/12/how-to-guide-dont-fall-victim-to-phishing/#comments</comments>
		<pubDate>Sun, 19 Dec 2010 15:45:45 +0000</pubDate>
		<dc:creator>Joseph Fisher</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[phishing]]></category>
		<category><![CDATA[scam]]></category>

		<guid isPermaLink="false">http://josephpfisher.com/?p=30</guid>
		<description><![CDATA[I first wrote about the dangers of phishing scams in the early 2000&#8242;s. I posted some tips on my old<a href="http://josephpfisher.com/2010/12/how-to-guide-dont-fall-victim-to-phishing/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p><a href="http://josephpfisher.com/wp-content/uploads/2010/12/phishing-scammer.jpg"><img class="size-medium wp-image-31 alignleft" style="border: 1px solid black; margin: 2px 4px;" title="phishing-scammer" src="http://josephpfisher.com/wp-content/uploads/2010/12/phishing-scammer-225x300.jpg" alt="" width="225" height="300" /></a>I first wrote about the dangers of phishing scams in the early 2000&#8242;s. I posted some tips on my old freelance company&#8217;s website, back in the pre-blog days. While I don&#8217;t have the original post anymore, the good news is the same tactics that I suggested then are still helpful today. And the even better news is there are a few new tools that can help you avoid falling prey to scammers.</p>
<p>Phishing scams are attempts by criminals to obtain personal information from you. It first started in the late 90&#8242;s when spammers needed to find legitimate e-mail addresses to use for their bulk mailings. Legitimate addresses were less likely to get caught in anti-spam filters, which were becoming commonplace at the Internet Service Provider (ISP) level.</p>
<p>The typical phishing scam we see today is an official (or not so official) looking message that claims to be your ISP&#8217;s support department. The message demands you respond with your username, password, and possibly other details, lest your account be deactivated. Some of these messages are easy to spot as forgeries. For example, I received the following message the other day on my UGA e-mail account:</p>
<p><span id="more-30"></span></p>
<blockquote>
<pre>
<pre>Reply-To: &lt;<a href="mailto:securitysupport@hotxf.com" target="_blank">securitysupport@hotxf.com</a>&gt;
From: "Email Security Maintenance."&lt;<a href="mailto:security@f-secure.com" target="_blank">security@f-secure.com</a>&gt;
Subject: Security Maintenance.F-Secure � HTK4S</pre>
<p>Dear Email Subscriber,<br />
Your e-mail account needs to be improved with our new F-Secure � HTK4S anti-virus/anti-spam 2010-version.<br />
Fill in the columns below or your account will be temporarily excluded from our services.<br />
E-mail Address:</p>
<p>Password:</p>
<p>Phone  Number:<br />
Please note that your password is encrypted with 1024-bit RSA keys for increased security.<br />
Management.<br />
Copyright 2009. All Rights Reserved.</pre>
</blockquote>
<p>There are several big red flags in this e-mail. The first is that the message claims to be from F-secure. While F-secure is the campus anti-virus product, I wouldn&#8217;t expect to ever see an e-mail from them as an end user. But stranger things have happened, so moving on the next thing you&#8217;ll notice is that the &#8220;reply-to&#8221; address is different than the &#8220;from&#8221; address, and is neither an F-secure nor a UGA e-mail address. That means the e-mail was designed to look like it came from someone official, but replies are automatically directed to someone not official.</p>
<p>Next, you&#8217;ll notice the message is addressed to &#8220;subscriber&#8221;, and is generally poorly written. With 50,000+ e-mail users at UGA, if there&#8217;s going to be a big announcement, you can expect it to be very well polished. It is higher ed, after all. Additionally, I&#8217;m not a &#8220;subscriber&#8221; of e-mail at UGA. I&#8217;m a member of the staff, faculty or student body.</p>
<p>The dead giveaway in this message though, is the request for the password. No ISP will ever need you to give your login password to them. Period. They can always reset it if they need to, over the phone, after verifying your identity. But ISP&#8217;s have no legitimate reason for you to divulge your password. Any e-mail that requests you send your password to someone else is 100% guaranteed to be a scam.</p>
<p>Some messages aren&#8217;t so obvious, though. In my first experience with phishing scams, I received an official looking e-mail from MindSpring (they were an awesome ISP from the late 90&#8242;s). They wanted some updated info on my account, and having recently changed addresses, I figured it was legitimate. I started filling out the form on their site, which looked <em>exactly</em> like it was supposed to. That is until I reached a question asking for my ATM PIN. A moment of shock came over me as I realized I was on the last question and had divulged a great deal of information in this form I was just about to submit to a scammer. An ATM PIN is even more important than a password, and should never ever be divulged to anyone ever. Thankfully this scammer asked just a little too much, and I was able to avoid serious headaches.</p>
<p>These days, I never would&#8217;ve started filling out the form. Not because I&#8217;m better at spotting scams, but because modern browsers now alert you when you&#8217;re visiting suspect sites. Microsoft&#8217;s Internet Explorer, Mozilla Firefox, and Google Chrome all have phishing detection mechanisms built in. They are programmed to pop up an alert if something seems amiss. A word of caution, though &#8211; they aren&#8217;t 100% foolproof. They&#8217;re a good tool, but if you blindly click every link in every e-mail, it&#8217;s bound to let something through.</p>
<p>While there are long lists of tips on how to identify phishing scams, I&#8217;ve found one sure-fire way to ensure an e-mail is legitimate: call the sender. If you receive a message that asks you to change your password, call your ISP. They can tell you whether or not it&#8217;s a legitimate request. Identity theft can take years to recover from, costing tens of thousands of dollars. A 5-minute phone call is an ounce of prevention to hundreds of pounds of cure.</p>
<p>But if you must follow up on an e-mail via the web, don&#8217;t ever follow links from e-mail messages. Always type in the address of the web site by hand. Links can be obfuscated to appear as though you&#8217;re going to &#8220;bankofamerica.com&#8221;, and instead redirect you to &#8220;scammershomepage.cn/stealing-your-data&#8221;. Any company big enough to handle online logins is also big enough to splash an alert across your screen if they something from you.</p>
<p>To summarize:</p>
<ul>
<li>Never divulge your password or ATM PIN, ever.</li>
<li>Use the latest version of an internet browser with built-in phishing detection</li>
<li>Never follow links in e-mails to login pages, type in URLs by hand instead</li>
<li>Look for spelling and grammar errors, and anything that looks less than professional</li>
<li>Check the sender and reply e-mail address</li>
<li>If in doubt, call the sender</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://josephpfisher.com/2010/12/how-to-guide-dont-fall-victim-to-phishing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Guide: Avoid Viruses and Malware</title>
		<link>http://josephpfisher.com/2010/12/how-to-guide-avoid-viruses-and-malware-2/</link>
		<comments>http://josephpfisher.com/2010/12/how-to-guide-avoid-viruses-and-malware-2/#comments</comments>
		<pubDate>Sun, 19 Dec 2010 00:59:03 +0000</pubDate>
		<dc:creator>Joseph Fisher</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[malware]]></category>
		<category><![CDATA[virus]]></category>

		<guid isPermaLink="false">http://josephpfisher.com/?p=23</guid>
		<description><![CDATA[Computer viruses have been a major frustration for computer users and IT staff for decades. And it&#8217;s particularly costly to<a href="http://josephpfisher.com/2010/12/how-to-guide-avoid-viruses-and-malware-2/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p><a href="../wp-content/uploads/2010/12/malware.jpg"><img class="alignleft" style="border: 1px solid black; margin: 2px 3px;" title="malware" src="../wp-content/uploads/2010/12/malware-300x248.jpg" alt="" width="180" height="149" /></a>Computer  viruses have been a major frustration for computer users and IT staff  for decades. And it&#8217;s particularly costly to business, as companies must  hire IT workers to clean infected machines, absorb non-productive  downtime in their employees, and possibly lose valuable data. Estimates  vary widely, and it&#8217;s very hard to say what the exact cost is. But I  think we can all agree that it&#8217;s an avoidable disruption. Much like your  personal health, prevention is by far the most effective strategy at  combating pesky computer-based critters.</p>
<h3>Malware vs. Virus</h3>
<p>Computer terminology is never-ending, so I&#8217;m not surprised that people are confused about what&#8217;s what. <a href="http://en.wikipedia.org/wiki/Malware">Malware is software designed to secretly access a computer system without the owner&#8217;s informed consent</a>, while <a href="http://en.wikipedia.org/wiki/Computer_virus" target="_blank">a viruses is malware that replicates</a>.  The term &#8220;malware&#8221; is an umbrella, under which the term &#8220;virus&#8221; falls.  Some of the nastier programs I&#8217;ve dealt with haven&#8217;t ever tried to  replicate &#8211; they only try to prey on your computer.</p>
<p><span id="more-23"></span>It&#8217;s important to understand the difference because not all virus  scanners detect all types of malware. It&#8217;s not a pleasant feeling when  you suffer a crippling infection when you thought you had adequate  protection.</p>
<h3>Methods of Prevention</h3>
<ol>
<li><strong>Always maintain an up to date system.</strong>This is easier said than  done, as every program has its own updater (if you&#8217;re in Windows), and  patches are released on a rolling basis. While it&#8217;s frustrating being  bugged by update managers seemingly constantly, I can assure you it&#8217;s  worse to get infected due to an unpatched system.If you&#8217;re on Windows,  make sure Windows Update is set to run regularly (go to Start -&gt;  Control Panel -&gt; Automatic Updates to configure your update  preferences).If you&#8217;re on Mac, go to the Apple logo in the upper left  corner, and select &#8220;Software Update&#8221;. When the update manager opens,  check the box to &#8220;check for updates daily&#8221;.</li>
<li><strong>Run a malware detection program that has real-time scanning, keep  it updated, and ideally run another standalone scanner as well. </strong>There  are dozens of reputable anti-virus programs on the market today. The  good news is some of them are free to use, and very effective. The bad  news is that you&#8217;ll have to keep them updated to be effective. (Note:  Anti-virus vendors warn about running multiple anti-virus products at  the same time. The concern is when there are more than one real-time  scanners active on the same computer. So long as you only have one  real-time anti-virus program installed, you&#8217;ll experience no  problems.)For Windows users, I recommend downloading and installing all  of the following:- <a href="http://www.microsoft.com/Security_Essentials/">Microsoft Security Essentials</a> &#8211; A surprisingly good real-time anti-virus and anti-malware scanner  provided by Microsoft, available for free to anyone who owns a license  to Windows. It runs in the background and checks files as they&#8217;re  downloaded and opened.- <a href="http://www.safer-networking.org/en/mirrors/index.html" target="_blank">Spybot Search &amp; Destroy</a> &#8211; This is a standalone scanner that specializes in non-virus malware  (aka spyware/adware). It has to be run manually to scan and clean  infections.- <a href="http://www.clamav.net/lang/en/about/win32/">ClamAV</a> &#8211; Clam is a great standalone virus scanner that&#8217;s available for free.  While it won&#8217;t monitor your system for you, it works well in conjunction  with Microsoft Security Essentials. any time you download a file, with  Clam installed, simply right click the file and select &#8220;Scan with  ClamAV&#8221;. Not only will Microsoft automatically check the file, but now  Clam will look at it as well. Since different programs have different  detection mechanisms, this is a great way to ensure nothing slips  through the cracks.If you&#8217;re running Mac OSX, congratulations &#8211; you&#8217;re very unlikely to  be affected by malware! As of writing, there are very few viruses that  affect the Mac operating system. Although ironically, the <a href="http://en.wikipedia.org/wiki/Elk_Cloner">first known virus did attack Apple computers</a>.  But don&#8217;t get too excited, this period of tranquility is likely to end  soon. With Mac sales growing rapidly, it&#8217;s only a matter of time before  some enterprising coder spoils the fun. It&#8217;s a good idea for Mac users  to run <a href="http://www.clamxav.com/">ClamXAV</a>,  which is also free, and scan all downloaded files. Even though your own  system may not be infected by a Microsoft virus, your friend running  Windows will thank you for not spreading germs around.</li>
<li><strong>Use an alternate web browser</strong>.For years Microsoft  dominated the web browser market with Internet Explorer. Lately other  major game changers entered the industry with impressive new products  that boast, among other things, safer web browsing. <a href="http://getfirefox.com/" target="_blank">Mozilla&#8217;s Firefox</a> and <a href="http://www.google.com/chrome">Google&#8217;s Chrome</a> are both superb browsers that can help you stay safe online. Both also  offer plug-in extensions, which are add-on downloads that provide added  functionality. A few of my favorites are Adblock Plus (which eliminates  most ads from my browsing experience) and Web of Trust (which warns me  when I may be venturing to a bad site). There are literally hundreds of  add-ons, and many have quickly become must-haves on all of my computers.</li>
<li><strong>Trust no one</strong>.The worst pieces of malware are very deceptive.  When you visit an infected site, a window pops up that looks like your  &#8220;My Computer&#8221; screen. A &#8220;scanner&#8221; then proceeds to run through your  files and then claims to detect a virus. It prompts you to remove it,  looking like a legitimate Microsoft alert. But in actuality, it never  scanned anything. The &#8220;scanner&#8221; was really just an animation &#8211; a movie &#8211;  and when you click on the the &#8220;fix it&#8221; button, the malware installs  itself on your system. Once it&#8217;s in place, it will bug you every few  minutes to purchase the full version of some malware scanner that it  promises will remove the bad files. It&#8217;s a pretty slimy practice, and  unfortunately, very effective.If you ever encounter something that  claims to be a scanner or some kind of virus alert, do NOT click it  unless you&#8217;re sure you recognize that it&#8217;s one of your already-installed  scanners. If you have any doubt at all, restart your computer and run a  full scan on Microsoft Security Essentials, Spybot, &amp;  ClamAV.Unfortunately, those types of malware are very difficult to  remove, and often require the hard drive to be wiped in order to  completely eradicate the malware.</li>
<li><strong>For anything I didn&#8217;t cover, Google is your best friend</strong>.If  something comes up and you&#8217;re unsure, Google it. The reality is that  most computer people are generalists with a short list of areas of  expertise. We&#8217;re like doctors who rush off to look up the answer to your  question while you put your pants back on in the waiting room. Thanks  to Google, you have access to the wealth of human knowledge at your  fingertips. Don&#8217;t be afraid to do your own research. Just be mindful to  look for additional sources and confirmations. And as always, if you  have any questions, don&#8217;t hesitate to shoot me an e-mail &#8211; or simply  comment on this blog.</li>
</ol>
<p>Next up: How to Avoid Phishing Scams</p>
]]></content:encoded>
			<wfw:commentRss>http://josephpfisher.com/2010/12/how-to-guide-avoid-viruses-and-malware-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

