Category Archives: Essential Business Server 2008

Essential Business Server 2008 Solutions

Framework 3.5 Service Pack / Security Updates Fail

Taken from http://blogs.technet.com/b/essentialbusinessserver/archive/2009/05/07/microsoft-net-framework-3-5-sp1-kb951847-fails-to-install-on-ebs-servers.aspx

I have had several servers that were having .Net Framework 3.5 SP1 installation and security update issues. I ran the following commands and it cleared up the issue with the .Net 3.5 updates.

Event log showed Error 1325.’Microsoft.NET’ is not a valid short file name. 

Create PowerShell Script file .ps1: (Note: PowerShell must be installed check windows installed updates from appwiz.cpl)

# determine the framework and ebs guids. these will be unique for each install

$productskey = “HKLM:SOFTWAREClassesInstallerProducts”
$installedproducts = get-childitem $productskey
$guidstofix = 1..6

foreach ($product in $installedproducts)
{
$product = $product -replace(“HKEY_LOCAL_MACHINE”,”HKLM:”)
$PackageCode = get-itemproperty -path $product -name “PackageCode”
if ($PackageCode.PackageCode -match “4C78A69B7517C0446978C7906EBD7950”)
{ $guidstofix[0] = $PackageCode.PackageCode
$guidstofix[1] = $product.Substring($product.LastIndexOf(“”)+1)
}
elseif ($PackageCode.PackageCode -match “971651411F68D9B4CAF6FCDFB652BB9F”)
{ $guidstofix[2] = $PackageCode.PackageCode
# get the guid from the name of the key
$guidstofix[3] = $product.Substring($product.LastIndexOf(“”)+1)
}
elseif ($PackageCode.PackageCode -match “89C1D03477CD8054881EFCE6FAAFB588”)
{ $guidstofix[4] = $PackageCode.PackageCode
$guidstofix[5] = $product.Substring($product.LastIndexOf(“”)+1)
}
}

# get a list of the registry keys to parse
$regkeys = reg query HKLMSoftwareMicrosoftWindowsCurrentVersionInstallerUserDataS-1-5-18 /s

# find and replace all instances of D? with C?

for ($i = 0; $i -lt $regkeys.Length; $i++)
{
if ( ($regkeys[$i] -match “D?\”) -or ($regkeys[$i] -match “C\?\\”) )
{
$badkey = $regkeys[$i-1]
$badkey = $badkey -replace(“HKEY_LOCAL_MACHINE”,”HKLM:”)
for ($j = 0; $j -lt $guidstofix.count; $j++)
{

$badvalue = (get-itemproperty $badkey $guidstofix[$j] -ea silentlycontinue).($guidstofix[$j])
# filter out null values
if ($badvalue -match “^D?\”)
{
$goodvalue = $badvalue -replace (“D?\”, “C?”)
set-itemproperty -path $badkey -name $guidstofix[$j] -value $goodvalue
write-host “:::::replacing $badvalue with $goodvalue”
}
elseif ( $badvalue -match “^C\?\\”)
{
$goodvalue = $badvalue -replace (“^C\?\\”, “C:”)
set-itemproperty -path $badkey -name $guidstofix[$j] -value $goodvalue
write-host “:::::replacing $badvalue with $goodvalue”
}
}
}
}
# now replace c\?\\ with c:\

if(!(test-path “C:WindowsMicrosoft.NETFrameworkv3.5WFServicesReg.exe”))
{
write-host -fore ‘Red’ -back ‘Black’ “Please copy WFServicesReg.exe from a working installation to C:WindowsMicrosoft.NETFrameworkv3.5

}
if(!(test-path “C:WindowsMicrosoft.NETFramework64v3.5WFServicesReg.exe”))
{
write-host -fore ‘Red’ -back ‘Black’ “Please copy WFServicesReg.exe from a working installation to C:WindowsMicrosoft.NETFramework64v3.5”
}

Here is the direct script download, but I don’t like downloading scripts from the internet as a best practice. But, for you lazy people that don’t want to create the ps1 file and run it yourself: dotnetfixupv2

Note: If it keeps opening up in notepad, select open with and navigate to c:windowssystem32Windows Powershell1.0powershell.exe

After the Script is run install .Net Framework 3.5 SP1

The from Run Box type:

MsiExec.exe /fp {CE2CDD62-0124-36CA-84D3-9F4DCF5C5BD9}

Assigning Client Access Licenses without EBS Administration Console

This is for any IT Admins out there where the Essential Business Administration Console is no longer launching or has errors on launch. Sadly, Microsoft put the Licensing in this Console only, and no other GUI exists for it. However, that is why Powershell exists, and here is the commands to manage all your CALs in your network.

Here is the step by step:

  1. Open Powershell on Management Server. (Start ->All Programs -> Windows Powershell 1.0)
  2. Type this at command prompt: Add-PsSnapin Microsoft.BusinessServer.Licensing.PowerShell
  3. View current current CAL assigned by typing: Get-CalAssignment
  4. To assign the user bob jenkins (login name: bjenkins) type: Set-Cal -name bjenkins
  5. To remove a cal from bob jenkins type: Clear-Cal -name bjenkins
  6. To Install a Cal Pack type: Install-CalPack insertkeyhere
  7. Get a list of all Cal Packs installed: Get-InstalledCalPack

With these commands you should be able to manage your CALs without having to deal with the GUI problems and general slowness of EBS Admin Console. For a list of all commands go to microsoft’s website at http://technet.microsoft.com/en-us/library/cc940950(v=ws.10).aspx.