6/1/2009, 5:10 PM
I often find myself in a situation where I need to quickly compare multiple servers to determine if the same version of the product has been installed on all machines. The easiest way to do this, at least for me, involves:
First, you want to obtain an SPSReport (LITE) from all of the servers in question. You are primarily concerned with the following files:
Using the following Log Parser script and command, I am able to quickly generate version data for each:
1: -- 2: -- Logparser file:SPSReportFilever.sql?source=Server1_WSEVer.txt,Server2_WSEVer.txt+destination=WSEVer.csv -i:TEXTLINE -o:CSV 3: -- 4: SELECT 5: SUBSTR(TEXT, 22, 14) AS FileVersion, 6: LTRIM(SUBSTR(TEXT, 41, 10)) AS FileSize, 7: SUBSTR(TEXT, 52, 10) AS FileDate, 8: SUBSTR(TEXT, 63) AS FileName, 9: EXTRACT_TOKEN(EXTRACT_TOKEN(EXTRACT_FILENAME(LogFilename),0,'.'),0,'_') AS ComputerName 10: FROM 11: %source% TO %destination% 12: WHERE 13: INDEX_OF(TEXT,'-') = 0
1: --
2: -- Logparser file:SPSReportFilever.sql?source=Server1_WSEVer.txt,Server2_WSEVer.txt+destination=WSEVer.csv -i:TEXTLINE -o:CSV
3: --
4: SELECT
5: SUBSTR(TEXT, 22, 14) AS FileVersion,
6: LTRIM(SUBSTR(TEXT, 41, 10)) AS FileSize,
7: SUBSTR(TEXT, 52, 10) AS FileDate,
8: SUBSTR(TEXT, 63) AS FileName,
9: EXTRACT_TOKEN(EXTRACT_TOKEN(EXTRACT_FILENAME(LogFilename),0,'.'),0,'_') AS ComputerName
10: FROM
11: %source% TO %destination%
12: WHERE
13: INDEX_OF(TEXT,'-') = 0
Save the above script in a file. Let's call it SPSReportFilever.sql. You will want to execute the following command from a DOS prompt for each grouping: WSS, MOSS, and GAC:
Logparser file:SPSReportFilever.sql?source=Server1_WSEVer.txt,Server2_WSEVer.txt+destination=WSEVer.txt -i:TEXTLINE -o:CSV
This, in turn, will produce a csv file with the following content:
This will allow us to easily import this into an Excel spreadsheet and then perform a simple pivot operation.
This tells us that the same version of this dll is installed on all of servers in our farm. What if it had not been? What would that look like?
As we see here, SERVER2 is running a version of mssrch.dll that is significantly behind the version that is running on all of the other machines in the farm. Further investigation reveals that the SERVER2 did not have the MOSS April 2009 CU applied to it while other machines in the farm DID have the April 2009 CU applied. We applied the MOSS April 2009 CU to SERVER2 and our issues were resolved