"It's not what you can do, it's what you can get done."

Thursday, March 24, 2011

Win 7 and SSD's (Swapfile is good!)

From http://blogs.msdn.com/b/e7/archive/2009/05/05/support-and-q-a-for-solid-state-drives-and.aspx


Should the pagefile be placed on SSDs?
Yes. Most pagefile operations are small random reads or larger sequential writes, both of which are types of operations that SSDs handle well.
In looking at telemetry data from thousands of traces and focusing on pagefile reads and writes, we find that
  • Pagefile.sys reads outnumber pagefile.sys writes by about 40 to 1,
  • Pagefile.sys read sizes are typically quite small, with 67% less than or equal to 4 KB, and 88% less than 16 KB.
  • Pagefile.sys writes are relatively large, with 62% greater than or equal to 128 KB and 45% being exactly 1 MB in size.
In fact, given typical pagefile reference patterns and the favorable performance characteristics SSDs have on those patterns, there are few files better than the pagefile to place on an SSD.

Thursday, January 20, 2011

Installing .NET on WFLP (Windows Fundamentals for Legacy PC's)

I was using a WFLP VM for my day-to-day admin stuff, as it was lighter-weight. However, vSphere Virtual Infrastructure Client 4.x uses .NET 3, which wouldn't install,  so 

Installing .NET gave a generic "error 1603", which just means "Failed Installation". (Windows Update error was 0x643)


Delving into the .net install/error logs,

%temp%\dd_dotnetfx35error.txt:


[03/19/12,16:41:09] WIC Installer: [2] Error code 1603 for this component means "Fatal error during installation.
"
[03/19/12,16:41:10] WIC Installer: [2] Setup Failed on component WIC Installer


%temp%\dd_dotnetfx35install.txt:
[03/19/12,16:41:07] UTILS::RunNGENAction: Started
[03/19/12,16:41:07] UTILS::RunNGENAction: Unable to find mscoree.dll
[03/19/12,16:41:07] Setup.exe: GetGlobalCustomProperty - Property: {092114C2-997D-4D68-8F3A-8BC2584FD23B} - PropertyName: Quiet Mode Setup - Value: 1
[03/19/12,16:41:07] WIC Installer: ISetupManager::GetGlobalCustomProperty() failed to find global prop in CBaseComponent::GetGlobalCustomProperty()
[03/19/12,16:41:07] Setup.exe: GetGlobalCustomProperty - Property: {BBE1827C-F2FD-4FDA-A6D6-C83B62FFFDCA} - PropertyName: compfailed - Value: 0
[03/19/12,16:41:07] Setup.exe: GetGlobalCustomProperty - Property: {8297A38B-6431-4F1D-9F6E-C3D371CEA383} - PropertyName: WebSetup - Value: 1
[03/19/12,16:41:07] WIC Installer: GenericComponent Action: CreateProcess launched with cmd line : e:\4ead3337240831714fa0329a6cdf8a\dotnetfx30\WIC_X86_ENU.exe /quiet /norestart /log:"%TEMP%\dd_WIC.txt"
[03/19/12,16:41:07] BWaitForMSI(): Verifying we're the only installation currently in progress.
[03/19/12,16:41:07] BWaitForMSI(): Ready to proceed with installation.  Continuing...
[03/19/12,16:41:09] WIC Installer: e:\4ead3337240831714fa0329a6cdf8a\dotnetfx30\WIC_X86_ENU.exe exited with return value 1603
[03/19/12,16:41:09] InstallReturnValue: GFN_MID WIC Installer, 0x643
[03/19/12,16:41:09] Setup.exe: AddGlobalCustomProperty
[03/19/12,16:41:09] WIC Installer: ***ERRORLOG EVENT*** : Error code 1603 for this component means "Fatal error during installation.
"
[03/19/12,16:41:10] Setup.exe: AddGlobalCustomProperty
[03/19/12,16:41:10] WIC Installer: ***ERRORLOG EVENT*** : Setup Failed on component WIC Installer




 pointed to "missing" DLL's:

windowscodecs.dll

windowscodecsext.dll

I tried installing "Windows Imaging Components" but it said a newer version was already installed:


%temp%\dd_WIC.txt:

0.230: 2012/03/19 16:41:09.603 (local)
0.230: e:\8536f54655b5da03535394513236\update\update.exe (version 6.3.4.0)
0.230: Failed To Enable SE_SHUTDOWN_PRIVILEGE
0.230: Hotfix started with following command line: /quiet /norestart /log:C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\dd_WIC.txt 
0.260: In Function GetBuildType, line 1170, RegOpenKeyEx failed with error 0x2
0.260:  C:\Windows\system32\WindowsCodecs.dll is Not Present
0.260: First Condition in Test.WindowsCodecsVer.Section Succeeded
0.260: Condition succeeded for section Test.WindowsCodecsVer.Section in Line 1 of PreRequisite 
0.260:  C:\Windows\system32\WindowsCodecsExt.dll is Not Present
0.260: First Condition in Test.WindowsCodecsExtVer.Section Succeeded
0.260: Condition succeeded for section Test.WindowsCodecsExtVer.Section in Line 2 of PreRequisite 
0.270:  C:\Windows\system32\WMPhoto.dll is Present
0.270: FileVersion of C:\Windows\system32\WMPhoto.dll is Greater Than 6.0.5840.16388
0.270: Condition Check for Line 3 of PreRequisite returned FALSE 
0.310: WIC Setup encountered an error:  Newer version of update is already on the system.
0.330: Newer version of update is already on the system.
0.330: Update.exe extended error code = 0xf0f4
0.330: Update.exe return code was masked to 0x643 for MSI custom action compliance.


So had to extract the DLL's  from the WIC installer and manually overwrite the newer ones in windows\system32. (In retrospect I should have backed up the new .DLL's and tried replacing them after the fact.)

Success! After that, all .NET installs worked, and I was able to install VIClient! (I started with .NET 3.0, but 3.5 includes 2 and 3). This also allowed the installation of PowerShell 2 goodness.

DLL's were ver. 6.0.6001.17009, FWIW.