January 9th, 2010
In my test lab environment, I recently attempt to upgrade from Exchange 2007 SP2 to Exchange 2010. Mostly, it went just fine, but then I started making some changes along the way and things went terribly wrong… I started getting the following error when installing/removing components:
Setup previously failed while performing the action "install". You cannot resume setup by performing the action "BuildtoBuildUpgrade"
Setup previously failed while performing the action "uninstall". You cannot resume setup by performing the action "BuildtoBuildUpgrade"
The trick to solving these errors is simple, but finding the solution took me several days of research, since Google and Bing searches produced only a handful of results with people having the same problem but none having the answer.
One forum mentioned something about the HKLM\Software\Microsoft\Exchange registry location and looking for a “Watermark” DWORD value. Well, turns out, this is partially right, but there’s more to it than that. For each role installed, there are 3-4 values… “Action”, “ConfiguredVersion”, “UnpackedVersion”, and “Watermark”.
Now ordinarily, Action and Watermark shouldn’t show up from what I can tell. If they do, that’s the problem. The errors above are generated when a previous attempt to install/uninstall/upgrade failed and left those two values behind.
Deleting the two values ensures that you’re able to proceed again with the setup process. But here’s where we run into another snag… because the previous process didn’t work, you’re going to be left with some files and data lingering that probably ought not be. Because of this, I would personally recommend that you INSTALL any affected roles from scratch, reboot, and then uninstall them (if that was your desired course of action).
Of course, if you’re trying to install/re-install, I would recommend uninstall Exchange in its entirety first and then re-installing. Annoying? Yeah. Definitely. I hope that Exchange Server 2014 (or whatever year is next) will have the Exchange team focusing on the setup process a bit, because in my opinion the readiness checks are nice, but need a lot of improvement too.
Posted in Tech News | Comments Off
December 8th, 2009
Here’s a handy little script I found today that backs up all MySQL database tables on a Windows Server. To use this, create a batch file– “MySQL_Backup.bat” for example—and edit the directory paths and password to match your configuration… then just double-click it, or use Scheduled Tasks to automate it.
:: Simple MySQL backup script per database
::
::
@echo off
:: Set some variables
set mysqlcmd="C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql.exe"
set mysqlpwd=amazingsecretsamplepassword
set mysqlconnect=%mysqlcmd% -u root --password=%mysqlpwd%
set mysqldumper="C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqldump.exe" -v -u root --password=%mysqlpwd%
set backupdir="d:\backup_mysql"
set logfile="d:\installs\backup_script\backup_log"
:: Loop over list of databases and dump
date /t > %logfile%
time /t >> %logfile%
echo Starting Script Run >> %logfile%
for /f %%i in ('"%mysqlconnect% -e "show databases" --skip-column-names"') do (
echo ---------------------------------------------- >> %logfile%
date /t >> %logfile%
time /t >> %logfile%
echo Now handling %%i >> %logfile%
%mysqldumper% %%i > %backupdir%\%%i.sql 2>> %logfile%
Posted in Tech News | Comments Off
December 4th, 2009
Quick word of advice to anyone doing a Unity Express upgrade (of any kind)… always reboot your CUE module first to make sure there’s plenty of memory available for the install process.
Posted in Tech News | Comments Off
November 22nd, 2009
This is an easy tutorial for configuring a Cisco CallManager Express (CME) system to use Exchange 2007/2010 Unified Messaging for voice mail and other Exchange messaging needs. For what it’s worth, I highly recommend using 2010 instead of 2007 due to the MWI (Message Waiting Indicators) functionality, but there are add-ons for 2007 to enable it as well.
Read the rest of this entry
Posted in Tech News | 6 Comments
November 18th, 2009
Over the past several months, I’ve spent an insane amount of time working with my business’s NEC vendor and our Cisco vendor to implement a SIP integration between a Cisco CallManager Express install and our existing NEC IPK II PBX phone system. Eventually, this post will become a full step-by-step, but for now I’ll start with a list of the major problems and quick solutions:
- Make sure your NEC system has a slot with enough power for the SIP card, otherwise, you can configure it all you want, but it will never be able to establish a call. Total time spent by our vendor on this: 1.5 months. Reason: We actually had multiple hardware failures on the NEC side during this diagnostic, so we spent more time fixing those than dealing with the SIP integration.
- Don’t let your vendor convince you that “station side” implementation is either necessary or recommended. In fact, SIP Trunking is definitely recommended unless you need more than 24 trunk ports between the two systems. Total time spent on this debate: 2 weeks. Reason: Your NEC SIP licenses are essentially “per connection”. If you’re like me, you plan to grow your Cisco solution but won’t have more than 24 concurrent connections between the two. This way is cheaper and keeps you less dependent on the NEC system. The reason station side is recommended by NEC is that it supposedly allows more functionality and control on the NEC side which probably isn’t all the desirable, and really I haven’t seen any evidence of it being true.
- DTMF (touch tone) support isn’t going to work with the default settings on either system. In order to make it work, on your NEC system you have to go to 84-13 in System Data to enable DTMF Relay Mode as RFC2833. On the Cisco system, you need to enable dtmf-relay rtp-nte for each dial-peer (except your Cisco voicemail/auto-attendants which should be sip-notify) along with nte-end-digit-delay 50 for each ephone device connected. Total time spent determining this fix: 3 weeks, and I finally figured it out since our NEC vendor washed their hands of it and the Cisco vendor was convinced the config was right with just the rtp-nte. Actually, it really is a problem on the NEC side, because IPK II doesn’t allow the beginning and end packets to be sent/received at the same time per the RFC2833 spec. the nte-end-digit-delay setting basically provides a work-around to tell the Cisco system to slow down the tone packets so that the NEC system can get a clue what to do.
- Caller ID is still a problem for us… Cisco to Cisco and Cisco to NEC is perfect, but the NEC system doesn’t seem to pass the proper Caller ID information back to the Cisco system. I’m still working on finding a solution, but I’m on my own, because our NEC vendor insists that it’s not possible, just like they insisted DTMF was never going to work. Update: I finally discovered that the issue is how NEC is sending the ID string during call initiation. While the standard is “Display Name”[Extension@SIP_IP_ADDRESS], NEC insists on using “Extension”[PrimaryNumber@SIP_IP_ADDRESS] which is not standard practice. I’m still looking for a fix for this.
- Make sure you have decent vendors on both sides. There’s going to be a lot of blame to pass around when things don’t work. Don’t make it worse by allowing either vendor to be incompetent about the process. Work with them both directly, and make both work together to get it working! Hopefully my advice here will make someone else’s life a whole lot easier!
All that said, moving away from the NEC PBX solution to a full-blown Cisco VoIP solution is highly recommended, and much more cost effective in the long run. You may pay more up-front for the Cisco implementation, but the support costs are drastically reduced and support efforts significantly reduced… not to mention the total boost in functionality and expandability by comparison.
Posted in Tech News | Leave a Response...
November 18th, 2009
One of the favorite customizations of Cisco Call Manager systems is to install and enable custom ringtones. Doing this with the bundled stock ringtones is easy enough, but for those who don’t want to wade through complicated technical documentation, here’s a straight-forward guide for the entire process of making your own and publishing them on your CM/CME device.
To begin, you’ll need three things to begin:
- Digital copies of your desired ringtones… MP3’s, WMA’s, WAV’s, etc.
- WavePad… inexpensive audio editor that makes conversion and editing of ringtones a cinch. It’s free for trial if you’re only planning to use it for a short time, but I highly recommend buying it… it’s also less than Audition which is the only other program that is “recommended” by various posts on the Cisco Support Forums.
- Cisco Configuration Pro (requires Cisco.com login with download privileges)… Cisco utility for Integrated Services Routers (provides a simple interface to upload your files), if you’re running CME.
Creating/Editing Your Ringtones
- Once you install WavePad, open the program and create a new file based on the parameters shown here:
- Click Edit > Insert File > Begin, and pick the audio file to use as your ringtone.
- Edit the file to be less than 20 seconds (18 seconds is the default ring sequence for CM/CME).
- Save the file as a RAW format (don’t use spaces or punctuation in your names), and when prompted, use the following parameters:
- Rinse and Repeat for each desired ringtone.
Preparing the RingList.xml File
Once your ringtones are ready, you need to create a RingList.xml file that will be uploaded in conjunction with the ringtone files. The file can be created and edited with Notepad or other plain-text editor and should look like this:
<CiscoIPPhoneRingList> <Ring> <DisplayName>Bass</DisplayName> <FileName>Bass.raw</FileName> </Ring> </CiscoIPPhoneRingList>
For each ringtone you add, you need a <Ring> tag, the DisplayName and FileName tags, and a closing </Ring> tag. For example:
<CiscoIPPhoneRingList> <Ring> <DisplayName>Bass</DisplayName> <FileName>Bass.raw</FileName> </Ring> <Ring> <DisplayName>Chime</DisplayName> <FileName>Chime.raw</FileName> </Ring> </CiscoIPPhoneRingList>
Again, when finished, save the file as RingList.xml and put it in the same location as your ringtones for the following section.
Uploading Your Ringtones and RingList.xml Files
The goal here is to get your files onto the server. Now, there’s varying ways to do this… Telnet/SSH via command-line, TFTP, but I recommend using the Cisco Configuration Professional utility’s File Management tool or the same tool in the older SDM tool. CCP is perfect for CME-based Integrated Services Routers, but may not be as perfect for full-blown CM solutions. In this case, use the tools that work best for you, but ultimately, you need to upload to your CM/CME devices storage for use with its TFTP service.
Once the files are uploaded, dump to command line’s config terminal prompt and issue the following commands:
tftp-server flash:Ringtone.raw tftp-server flash:RingList.xml
Repeat the first command for each ringtone, replacing Ringtone.raw with the actual filenames.
Once this is done, you may have to restart the TFTP service on full-blown CM servers due to file caching, and you definitely have to issue a “reset” your phones (in other words, restart them). Your ringtones should be listed and working perfectly.
Why did I feel a need to document this when it’s largely a rehash of the Cisco document found here and elsewhere? Simple. The Cisco document gives you the audio parameters required for the audio files, but it makes no recommendation on the programs to use. I really feel it’s important to document exactly what tools work easiest to get the job done. WavePad makes it easy, and let’s face it, the Cisco document does assume you’re quite versed in the whole process.
Posted in Tech News | Leave a Response...
September 6th, 2009
Quite some time ago, I migrated my website to a Windows Server 2008 system with IIS7. Since my blog is based on WordPress, I was quite pleased when I discovered the IIS7 URL Rewrite module that allows me to create “pretty” URL paths instead of the usual date/time URL’s that WordPress normally uses.
Unfortunately, enabling these rules broke my Outlook Web Access with Exchange 2007. I was able to login to OWA without issue, but I’d constantly get “Access Denied” prompts when trying to navigate to folders, open emails, write emails, etc etc.
The problem ended up being that my URL Rewrite rule was incomplete. In order to make the URL Rewrite rule for WordPress coexist with OWA, I had to add an extra condition to the rule:
Basically, in addition to setting the default pattern as .* and your URL rewrite target as index.php, you also need 3 conditions. The first two are included in the documentation on the IIS.net site, however, the third one– {PATH_INFO} Does not match the pattern /owa/ — is the one required for OWA coexistence.
Hopefully this information will help others who may be running this similar configuration.
Posted in Tech News | Comments Off
August 14th, 2009
So I have several of these HP EliteBook 2730p Tablet PC’s. They are all identically configured, so my assumption was that the System Image Recovery options in Windows 7 would allow me to clone them with the same backup image.
Well, for the record, yes, I can. It works great, in fact! Except for one major condition: the hard drive you’re restoring to MUST be pre-partitioned in the same way that it was in the image.
That is, if you’ve got a 120GB hard drive, and you partition it with the default format (100MB system recovery drive, and 100-some-odd GB for C: drive), then you have to repartition the system that way to start with, and THEN launch SIR to perform the restore. Otherwise it will fail with a 0×80070057 error about an invalid parameter. Oops! Hopefully this will be corrected in SP1.
Posted in Tech News | Comments Off
August 12th, 2009
UPDATE: The official release of Windows 7 in October brought with it the necessary driver updates from HP. You can download them here instead of using the links below.
This post will document my install and configuration experience for Windows 7 Ultimate (64-bit) on an HP EliteBook 2730p Tablet PC (which is definitely what I recommend, and make sure you upgrade it to at least 3-4GB of RAM while you’re at it… oh and a solid-state drive helps too, but isn’t required).
First, because this system has no DVD drive, we have to prep a USB flash drive for the installation (note that SELECT DISK 1, D:, and F: parameters may vary depending on your setup):
- Start > Run > CMD.EXE
- DISKPART
- LIST DISK
- SELECT DISK 1
- CLEAN
- CREATE PARTITION PRIMARY
- SELECT PARTITION 1
- ACTIVE
- FORMAT FS=NTFS
- ASSIGN
- EXIT
Take a Windows 7 DVD, and switch the command prompt to the DVD using this command:
- D:
- CD BOOT
- BOOTSECT.EXE /NT60 F:
Copy the entire DVD to the USB flash drive.
Reboot and press F9 to do a custom boot… choose USB Hard Drive.
This will start the Windows 7 Setup process. Select your language (English), and continue.
Select your hard drive and partition to install to. For best results, do a clean install, and erase all existing partitions before proceeding. Setup will take approximately 15 minutes and will reboot at least twice.
You will reach a point in which setup prompts for some information:
- Username and Computer Name
- User Account Password and Hint
- Product Key (You can actually do this later, but I recommend doing it now)
- Automatic Updates (I recommend Automatic Settings)
- Time Zone
- Wireless Network
Windows will finish configuring itself, and will automatically run Windows Update to install any critical hardware drivers and updates. Do NOT interrupt this process, and I would recommend running Windows Update again after it’s finished to grab additional updates (out of the box, it has no fewer than 8 driver updates available). After install all available updates, reboot your computer, even if it doesn’t tell you it needs one. (Optional: I also recommend disabling the User Account Control settings in Control Panel > User Accounts. Although it’s intended as a security feature, it’s more annoying than anything.)
At this point, initial setup is complete. If you want to be thorough, run Windows Update, enable it’s full functionality (Get more updates), and run it until it offers no more updates. When you’re done, you’ll need to download and install the following updates manually:
I won’t go as far as saying that you’ve got a certified Windows 7 system, since officially these last four drivers are intended for Windows Vista, but I will say that this is a very stable, very FAST configuration. I’ve not found any technical snafus with this setup. With the latest BIOS update, I have no problems with standby, or any other driver functionality (including the fingerprint reader which is fully supported from the word go now).
Bottom line: If you have this system, you are a fool to not install Windows 7 at your earliest convenience!
Posted in Tech News | 6 Comments
May 7th, 2009
I’ve been playing with the Windows 7 Release Candidate for about a week now… the results are pretty good, and I’m still ready to support it on any and all systems.
In fact, the only things I’m having trouble with is driver compatibility, and I know those will be resolved in the coming months as hardware makers release new updates.
I’ve installed the release candidate on 2 portables—a Dell Latitude E6400 and an HP EliteBook 2730p – and here’s a list of what doesn’t work, in terms of hardware:
Read the rest of this entry
Posted in Tech News | Comments Off
|