Wednesday, November 16, 2016

iPhone missed calls showing on second iPhone

If you're sharing an Apple ID across multiple iPhones, you have likely ran into an issue at some point with one phone having something from the other phone. For this post we're talking specifically about missed call history.

If you have missed calls for one phone showing up on another phone, turn off iCloud Drive. You can do so by going into Settings->iCloud, then toggle the iCloud Drive setting to off. Make sure to verify it is off too. I've seen it take a couple tries to get it to actually go to off.

Once it's turned off the missed call history will no longer be getting synchronized, and won't show up on other phones signed into the same Apple ID

Monday, September 12, 2016

Windows 7 stuck searching for updates forever

If you've had to reinstall Windows 7, depending on how old your install media is you may run into this problem. Once Windows is installed and ready for updates, you tell it to search and it keeps searching, and searching, and searching... until you finally reboot or shutdown because it's been 5 hours and still nothing. I've ran into this a few times myself, and luckily I think I finally found a fix.

First, download and save Microsoft KB 3138612, which is an update to the Windows Update client. Apparently you now need this update to get the update process to work, but if the process is already broken then you can't get the new client through normal means and need to use the standalone installer. In my case, trying to install from the standalone left it searching forever for installed updates too, so just save this for now. You're going to need this in a minute.

Now, open up a command prompt and run it under the administrator context. The easiest way to do this would be click the Start button, type cmd, then right-click and select Run as Administrator on the Command Prompt or cmd.exe result you should see.

Once Command Prompt opens, type (without the quotes) "net start appidsvc" and press Enter. This should make sure the appid service is running.

Now that the service is running you can go ahead and install KB3138612 from the download you saved earlier. It should only take a couple of minutes to do this. If it gets stuck on searching for installed updates for more than 5 minutes, you may need to find another method. Once the KB is installed, reboot the computer.

Once the PC is on again, repeat opening the command prompt in the administrator context and starting appidsvc. After you've done that, type (without the quotes) "wuauclt.exe /detectnow" and press Enter. That should force the Windows Update client to search for updates and show you results once done.

In my case, it still took a while for it to search for updates because when it came back I had over 200 of them waiting to be installed. However, that was at most an hour. Prior to that I had left the machine searching for updates as long as 48 hrs and it never moved past that status. Once the updated client is installed, and you get past the initial round of updates that will likely be faily large, you should be fine from there to update normally in the future.

Monday, June 20, 2016

iPhone showing an unread text message but you can't find it

Ever see the notification on your Messages app, but have no luck finding it? Use Siri. Activate Siri, and then say "Read me my unread messages". Siri should then locate and read the unread message, after which the notification will go away.

I had a user that this happened to today. The odd thing was the message in question had been read and deleted already, but somehow hadn't been marked read so the notification kept coming back no matter how many times the user went into that particular message thread. Using Siri took care of it.

Tuesday, March 29, 2016

OS X Application Window not showing or visible

I recently had a user trying to open Acrobat Pro DC on a Mac laptop. The user would get the menu bar across the top, but could not see the application window on the screen to actually do anything. The trick was to go to Window->Zoom, which brought the app window back to normal on the screen. Either it has been zoomed out so much it was too small to see, or it had somehow gotten moved off the screen to where it was open but not in an area the user could see it.

Friday, December 4, 2015

Messages menu options grayed out on OS X

If you're someone that manages your fonts more than a normal user, you may have run into this issue with the built-in Messages, or iMessage, app on OS X. My users couldn't sign in or access any of the app features. The reason behind it was really simple. The AppleGothic font that normally comes on the system is required for the Messages app to work correctly. Make sure you have it activated if you're using a font manager, such as Universal Type Client. Once you have it active, open Messages and you should be able to use it like you would've expected.


Wednesday, October 7, 2015

Terminal server user cannot set default printer

Ok, I'll admit that this post is late to the party because I'm talking about Server 2003, which went EOL earlier this year. However, I'd guess that there are others like me that haven't eliminated it from their environment completely, and something similar may show up in the newer server OS versions, so here goes.

I had a couple of users who reported issues printing from their terminal server sessions. Printers were showing as installed, but if they tried to print from an application, say Excel, it would give them an error that no printers were installed and they couldn't select anything. Looking into it further, the printers were there but none were set to the default printer, and you could not manually set the default printer. Without a printer set, the applications were getting confused.

I tried recreating the roaming profiles to no avail. The printers themselves worked fine for other users and were setup locally on the terminal server. I found a Microsoft article about something similar with redirected printers that said to copy of the Default Users folder with a clean copy from another server, but that didn't seem to help either. Then I found this article. The registry hack listed there fixed it for the users that were having trouble.

Since I had regedit disabled for non-admins, I had to make changes from within a session opened by an admin. That made it a little trickier to find the correct reg key for the current user, but not impossible. What I did is expand HKEY_USERS and took a look at all the entries. Then I had the user who was having trouble login, then refreshed HKEY_USERS. Then had them logout and refreshed HKEY_USERS. It might help to do a before and after screenshot. Doing that you should be able to figure out which of the keys belong to their user account because it'll appear and disappear depending on when that user is logged in or out, and that's where you'll want to add the fix.

Have the users login, then from a session that has access to modifying the registry go to HKEY_USERS\*guid*\Software\Microsoft\Windows NT\CurrentVersion. Look for a key named Windows. If it doesn't exist, create it. Then, within Windows, create a new String value named Devices. Set the value of Devices to "winspool,Ne00", without quotes. Once done, have the user log out, then back in to your terminal server. He/She should be able to set the default printer and once again access printing services.

Monday, April 13, 2015

Export a list of categories and their parent from Magento

We were looking for a way to create a product setup form for our Magento-based eCommerce site. One of the hangups was getting a list of all our categories so that we could create a dropdown for users to select the category name from, but that we could pull the category ID from then as well. There are some posts that I found which tell you how to export all the categories with the ID value, but I didn't see anything that also told you how to get the parent category info so I had to dig into it myself. Luckily it wasn't too difficult so if you're looking to do something similar or just need a list of your category tree, you're in luck. There may be a way to do this in PHP using the some built-in functions of Magento, but I'm not familiar enough with them so I had to turn directly to MySQL. If you have an easier way please leave a comment to let everyone else know.

If you're looking at this then I'm going to guess you're a developer, or at least know someone who is that has access to the database running your site and can help you. If not then I wouldn't suggest doing this without some assistance unless it's on a test site or something other than your live site.

Within the Magento database there are two tables we need to join to get the information we're after: catalog_category_entity and catalog_category_entity_varchar. The entity table has the id values and the varchar table has the name. Now, there is a magic number used in the query that seems to vary database to database. That value is the attribute_id from the catalog_category_entity_varchar table. What I did to find out what value to use is look at the contents of the table and pay attention to the attribute_id value given to the Root Catalog entry that should be first. In my case it was 33 on one site, and 35 on another, which is why I say it varies. However, that attribute_id appears to identify the primary value field we want in order to get the correct category name, so mark it down.

The query I used to create my category list for the site where I found the attribute_id value to be 33 looked like this:

SELECT cc.entity_id,cv.value,cc.parent_id,cc.path FROM dbname.catalog_category_entity cc INNER JOIN dbname.catalog_category_entity_varchar cv ON cc.entity_id=cv.entity_id WHERE cv.attribute_id=33;

Make sure to change the attribute_id=XX; at the end to match whatever attribute_id value you found it to be within your own database. You also need to substitute your own database name in for dbname, but I'm hoping that you already knew that if you have access to the site's MySQL backend.

In this the entity_id is the ID of the category, value is the name of the category, parent_id is the ID of the parent category directly above in the hierarchy, and path is the full path in the hierarchy tree to the category based on the ID values.

I ran this query and had it export to a CSV file, and from that was able to build a drop down list to be used for selecting categories. Then we'll take products that get input into our form and upload them to the site through the use of Magmi. Hopefully this has been useful and helps you figure out whatever you're attempting to do with the categories on your Magento site.

Monday, December 22, 2014

The system has reached the maximum size allowed for the system part of the registry

The system has reached the maximum size allowed for the system part of the registry. Additional storage requests will be ignored

If you get this error on a machine it's a major annoyance. There are plenty of potential issues as to why this may be happening, but I'm not going to get into those. This article is going to assume that the registry truly has reached it's breaking point through normal means. Also, as a disclaimer, messing with your registry without understanding what you're doing is very dangerous so if you do continue with this process be careful. This article is my version of MS KB 2498915

The trick to reducing the size of your registry files is to open them within regedit without having your main OS running and exporting them. You can do this with a WinPE boot disk if the device is a physical machine. In my case the server was actually a VMWare ESXi client, and the WinPE disk wouldn't boot. In that case what I did is shut down my server and open the virtual hard drive on another ESXi client to gain access to the files.This created a new problem, but it was fixable. Make sure to check that link beforehand if you'll be doing the same in a ESXi environment.

The files you need access to are in the C:\Windows\system32\config directory: Software, System, Default, etc. These are your registry files. Whether you boot from WinPE or use a 2nd computer, those files remain the same. However, you can look at those registry files to see what their sizes are. Whichever one is the largest is the one I would suggest starting with. In my example I'll assume you're shrinking the software hive too, but you can repeat these steps for any of the registry hive files.

In my case, the software file was 3-4x larger than any of the others so that's where I suspected I had the most free space to reclaim. Once you have access to the registry files through WinPE or a 2nd computer, open regedit.

Once regedit is open, click on HKEY_LOCAL_MACHINE to select it and then go to File->Load Hive... This will open a file dialog box, and here you'll want to navigate to the registry files directory from above and open the hive, which in this case we're using software. You will be prompted to give it a temporary name, which you can use whatever you'd like to refer to it. In my case I used the name toshrink.

After the hive has loaded, select it and go to File->Export... and save it somewhere. Do not overwrite the existing hive, just in case you need it again. Something like softwarecompressed would be a good name. At this point you'll have to let regedit run, and it could take a while. My software hive was ~180MB and it ran for somewhere between 30-60 minutes before completing. Smaller will run faster of course.

After the export process has completed, close regedit and then reopen it. Once it is open again, click the hive you loaded in HKLM and go to File->Unload Hive... This will unload it from the registry.

Now go to the location of your newly compressed hive file. In our example we have softwarecompressed, which should be smaller than the software hive we started with. Rename software to software_orig, and rename softwarecompressed to software. Place the compressed and newly renamed file into the C:\Windows\system32\config folder and then reboot your machine normally. This should load the system with the compressed hive file, and get rid of your maximum size allowed error.

For me the software hive was 192MB, and after this process it was 133MB. The other hives didn't shrink enough to make it worthwhile, but the compression on the software hive was significant.

Good luck

Wednesday, December 17, 2014

VMWare error: The parent virtual disk has been modified since the child was created

I needed to shrink the registry files on a ESXi guest (guest1), and in order to do so I shut it down and mounted the virtual disk on a separate ESXi guest (guest2). Once it was done, I removed the temporarily shared virtual disk from guest2 and went to boot guest1. I received an error that said "Cannot open disk: .... The parent virtual disk has been modified since the child was created". I then tried reverting to a snapshot and that failed, so for a minute I thought I may have just lost one of my servers. Fortunately this is something that can be fixed, and it wasn't too difficult.

The ESXi guest's virtual hard disk can consist of multiple files. What was happening is that the ID tag(s) saved in those files to tell the system which order to align those files in to create the complete hard disk were getting changed when I mounted it on guest2. To fix the problem I needed to sort through those virtual disk files and correct any mismatched ID tags. Here's how I did that

First, I had to enable SSH access to my ESXi host. You can also get in through the ESXi CLI too if you'd prefer. To enable SSH access to an ESXi host, you can do it from the direct console or from the vSphere Client. From the direct console, log in and go to Troubleshooting Options->Enable SSH. To enable it through the vSphere client, open the host and go to Configuration->Security Profile. Then in the Services section, click Properties, click on SSH, then Options. From there you can set the startup policy, and also start the service.

Once I had SSH access enabled, I logged into the host holding guest1. Now you want to get into the datastore where the virtual hard disk files are stored for the guest, and navigation commands are the same as you'd use in Linux. For me it was cd /vmfs/volumes/datastore1/guest1. Once I was in that directory I could use the ls command to list all the files. What I needed where the guest1.vmdk, guest1-0000001.vmdk, guest1-000002.vmdk, etc files. For my machine, I had guest1.vmdk, and then three add-ons, so four total virtual disk files to look at.

At this point you'll want to use your favorite text editor to open these files. Personally, I use vi, but you can use whatever you'd like that is available. Open each of the virtual disk files and note the value at the top for CID and parentCID, then close and move to the next. The parent CID of guest1.vmdk should be something like ffffffff. Once I had opened each of my files I had this

CID: 32b76102, parentCID: ffffffff

CID: 7d3d984f, parentCID: fa1f4813

CID: 49eb6c66, parentCID: 6e1b350e

CID: fa1f4813, parentCID: 49eb6c66

Now is where you get to solve the puzzle. Which CID or parentCID is incorrect and screwing up your virtual hard disk? I had to draw it out, but what I ended up with is

6e1b350e (???)<-49eb6c66 d3d984f="" fa1f4813="" guest1-000001="" guest1-000002="" guest1-000003="" p="">
For me it was that the parentCID value on guest2 was pointing to an unknown CID. Once I found that out, I opened guest1-000002.vmdk in vi and changed the parentCID value to the CID value of guest1.vmdk, 32b76102. Saved and closed, then booted up guest1 without any other problems.

I did try it a second time just to see, and in that case the same thing happened on the same file. It looks like when I mount the virtual disk in guest2, the CID value on the primary vmdk file gets changed. All the others stay the same, so if you can find the parentCID value that is going nowhere and change it, then you're back in business.

Articles I found that helped me come out with the solution

VMWare KB about hard disks failing to open

VMWare KB about resolving CID mismatch on virtual hard disks

Enabling ESXi Shell or SSH access to ESXi host

Editing VMWare config files

Monday, June 30, 2014

Install Symantec's Backup Exec 2010 Mac OS X agent in OS X 10.9 or 10.10

Updated: 10/23/15

I reinstalled the OS on my OS X server and upgraded to 10.10 Yosemite. In that process I had to reinstall the Backup Exec agent, and I'm still running 2010. It was quick and simple, even though I ran into the same error about missing. Since it's been so long I looked it up rather than referring back to this post, and found an easier command than below on this blog. In Terminal, run sudo cpan -f Switch. You'll likely get a message that says something about your system needing XCode installed, and you'll have to select Install. Once that finishes, re-run sudo cpan -f Switch and let it autoconfigure itself. Once done, go ahead and run the Backup Exec Agent installer and any service packs you have for it and it should work just fine. Make sure to start the agent when you're finished.

Original Post:

If you're like me and hated the newer interface Symantec introduced in Backup Exec 2012, you may still be running Backup Exec 2010 instead. Now, if that's the case and you introduce a new Mac running OS X 10.9 Mavericks into your list of machines to backup you're going to run into a problem. The BE2010 agent will not install in OS X 10.9 and will give an error message instead about not being able to locate Before you jump to the conclusion that you need to upgrade Backup Exec to a version compatible with OS X 10.9, keep reading.

I ran across this today with a new OS X 10.9 Mac Mini server. It turns out that in Mavericks the has been deprecated from the version of Perl that comes with the OS, and the RAMS agent installer relies on that to run. It also turns out that adding it back to the OS is a pretty simple process, and once done the RAMS installer runs just fine. Here's what I did

1. Open a Terminal window on the OS X server
2. Run the command cpan install
3. Follow through the on-screen setup for CPAN (Comprehensive Perl Archive Network). I used the defaults
3a. During the install you will be prompted by the OS that you need to install make in order for the installer to continue. Click OK and let make install
4. Now CPAN should be installed so start it with sudo cpan. You need sudo access to install the file
5. You should see cpan (1) >. Type install Switch and press Enter. This will install the missing module back
to your Perl library
6. Once that's done type quit and press Enter to get back to the main Terminal

Now you should be able to run the RAMS installer package normally, and this time it should work.

Before doing this though, you should really ask yourself if you should. It seems to be working fine for me, but the Switch module was deprecated and left out for some reason. I make NO guarantees about this process, other than that it worked for me. If you have a test network available, please make sure to utilize that first before making this change in your production environment. Like I said, this was figured out the same day that I posted it, so I haven't done enough testing to say that it won't adversely effect the system, RAMS performance, or both.

This is the original article I came across while trying to get the RAMS installer to work that led me to write this article.