Thursday, June 19, 2008

Befriending Live Mesh and Server 2008

Update: recent versions of Live Mesh do not perform this check any more

When you try to install Windows Live Mesh Tech Preview on your Server 2008 workstation, you will see the message: "This product can be installed on 32-bit Windows XP SP2 or later and 64-bit Windows Vista or later." Well, considering WS2K8 slip ship date, it WAS later than Vista, nonetheless, installer does not go any further. Solution: Run installer with '-Force' command line option. LiveMesh.exe -Force [Useless tech details] Version check is performed by CBootstrap::CheckOS (\client\servicing\setup\bootstrap\bootstrap.cpp) called from CBootstrap::Run (all names extracted from error strings). There is no single place where CheckOS fails on a server version, so it's easier to just bypass it altogether. CheckOS is not called when byte at offset 30 in configuration data array pointed to by 0x0000000`10003E108 is nonzero. In ntsd terms, db poi(000000010003E100+8)+30 L1 Function to init this config array calls CCommandLine::cflag::operator=, and if you set a breakpoint at StrCmpIW called from CCommandLine::Parse, you can look at all option names: -Help -Quiet -Install -Uninstall -Repair -Force (you could also look at the array of the option structures at 0x000000010003CE30, first element of the structure-pointer to option name; structure size=0x20) Tools used: Ida64, NTSD


Anonymous said...

Thanks for the tip! Helped me a lot

Gui said...

I have tried that but I am now getting an error "Check your network settings". Any idea?

msft.guy said...

Do you get this error from LiveMesh.exe or later in the process?
If it IS from LiveMesh.exe, then
what does your log file ("%LOCALAPPDATA%\Microsoft\Live Mesh\Setup\Servicing.log") say?
If it is NOT, you could also try to look into "%LOCALAPPDATA%\Microsoft\Live Mesh\Setup\Live Mesh_MSI.log"

LOCALAPPDATA is an environment variable that usually points to C:\Users\<user name>\AppData\Local

Tim Toennies said...

I get an error during the course of the install:

Installer encountered errors.
Please verify your network settings and attempt to reinstall.

Tim Toennies said...

I did find the servicing.log file here: C:\Users\username\AppData\Local\Temp\Live Mesh

the contents were:
6216.6816{6/25/2008 12:13:05 AM}[ttoennies] e:\bt\370264\private\client\servicing\monitor\user.cpp(386): CUser::Reset() Copied 'Servicing.log' to TEMP
6216.6816{6/25/2008 12:13:06 AM}[ttoennies] e:\bt\370264\private\client\servicing\monitor\package.cpp(551): CPackage::Apply() Install Update=[Live Mesh: Windows Bootstrap amd64 v0.9.2815.17]
6216.6816{6/25/2008 12:13:14 AM}[ttoennies] e:\bt\370264\private\client\servicing\monitor\package.cpp(677): CPackage::Apply() Installed Update=[Live Mesh: Windows Bootstrap amd64 v0.9.2815.17]
6216.6816{6/25/2008 12:13:14 AM}[ttoennies] e:\bt\370264\private\client\servicing\monitor\user.cpp(105): CUser::get_Session() 0x80040154
6216.6816{6/25/2008 12:13:14 AM}[ttoennies] e:\bt\370264\private\client\servicing\monitor\user.cpp(249): CUser::RegisterService() 0x80040154
6216.6816{6/25/2008 12:13:14 AM}[ttoennies] e:\bt\370264\private\client\servicing\monitor\packages.cpp(469): CPackages::Load() 0x80040154
6216.6816{6/25/2008 12:13:14 AM}[ttoennies] e:\bt\370264\private\client\servicing\monitor\manager.cpp(367): CManager::UpdateApply() 0x80040154
6216.6816{6/25/2008 12:13:14 AM}[ttoennies] e:\bt\370264\private\client\servicing\monitor\manager.cpp(518): CManager::UpdateApply() 0x80040154
6216.6816{6/25/2008 12:13:14 AM}[ttoennies] e:\bt\370264\private\client\servicing\monitor\manager.cpp(746): CManager::Install() 0x80040154
6216.6816{6/25/2008 12:13:15 AM}[ttoennies] e:\bt\370264\private\client\servicing\monitor\package.cpp(478): CPackage::Pend() PendingUser Update=[Live Mesh: Windows Bootstrap amd64 v0.9.2815.17]
6216.6816{6/25/2008 12:13:32 AM}[ttoennies] e:\bt\370264\private\client\servicing\monitor\manager.cpp(425): CManager::UpdateApply() There are 1 updates in queues
6216.6816{6/25/2008 12:13:32 AM}[ttoennies] e:\bt\370264\private\client\servicing\monitor\package.cpp(551): CPackage::Apply() Uninstall Update=[Live Mesh: Windows Bootstrap amd64 v0.9.2815.17]
6216.6816{6/25/2008 12:13:33 AM}[ttoennies] e:\bt\370264\private\client\servicing\monitor\package.cpp(677): CPackage::Apply() Uninstalled Update=[Live Mesh: Windows Bootstrap amd64 v0.9.2815.17]
6216.6816{6/25/2008 12:13:33 AM}[ttoennies] e:\bt\370264\private\client\servicing\monitor\user.cpp(386): CUser::Reset() Copied 'Servicing.log' to TEMP

Tim Toennies said...

Got this to work! I tried the install again using the -force option but this time I had UAC disabled. Worked perfectly!

Mark Wilson said...

Tim, Sadly I didn't have any luck with UAC off either... I don't suppose you had Hyper-V installed on your machine did you? I'm wondering if the Hyper-V networking arrangements (i.e. phycisl NIC bound to virtual switch, bound to TCP/IP etc.) are upsetting Live Mesh somehow...

msft.guy said...

@mark wilson:
I guess your problem is related to "Check your network settings" error? If this is the case, try running a network sniffer during installation and check for failed connection attempts. When I tried to install Mesh in a VM without NIC, the install almost finished, then it got to a custom action when it runs MoeMonitor.exe /Install, and this part fails with rather confusing log (%TEMP%\Live Mesh\Servicing[0000].log) that hints that Mesh may be using Windows Update servers to download something.

Anonymous said...

When I try to install LiveMesh on my computer (Vista, 32-bit), I get this message:

Please reboot to fix registry corryption.
Details about this problem can be found here.
[800703F7]The registry is damaged, the structure of one of the files with registrydata is damaged, the systemmemorycopy of the file is damaged or the file can't be fixed, because a replacing copy is missing

I translated the last part, because it's in Dutch. Microsoft's website doesn't help me, nor does rebooting or fixing problems with CCLEANER...

I hope you can help me?

Thank you

msft.guy said...

@Matthias: If this really is registry corruption, try using this manual (requires a second OS in dual-boot or a second PC you can plug your HDD into) to fix it. This is for system hives, to repair the user hive you need to create a second admin user account, log off your main account and use the described procedure with your \Users\your_account\NTUSER.DAT file. As usual - don't forget to back up before doing anything with your registry..
Also, just try installing Live Mesh from a different user account - if it succeeds, you only need to repair your user.dat hive which is easier (and does not require a second OS/PC)

-=|MisterY|=- said...

Hi! Does your Mesh client still syncs regularly?
Mine stopped working, throwing errors 6801 when trying to copy files from the temporary storage into the real folders after downloading them. :(

Anonymous said...
This comment has been removed by a blog administrator.
Jason404 said...

Does this -force option with x64? I am getting an error about .msi permissions. It looks like editing the registry might work. Anybody tried on x64?