Just wanted to add a possible solution for this issue that won't require re-setting any preferences; basically if macjack's solution would have worked for you, this will too, you won't lose any menu bar preference settings and you won't even have to log out. If you've already tried logging out and back in, or rebooting, and that didn't work, this will not work for you either so don't waste your time trying it.
Anyway, I keep a ton of stuff running and recently lost my right side menu bar items (clock, sound, networking, eject, etc). They were still there, because if I put my mouse over where they should be and clicked, I'd get the functionality, I just couldn't see them. Logging out is a painful operation for me because I have to restart everything I keep running. I simply instructed the SystemUIServer.app to reload and then my items came back like normal.
Here's what you do:
- Open a terminal / command prompt. You can do this by pressing ⌘-Space and then typing "terminal" and hitting enter.
- You'll end up with a command prompt and cursor. Type (or cut and paste) the following and hit enter: ps -efww|grep UI|grep SystemUIServer.app
- The above should have given you a list that looks like this:
# ps -efww|grep UI|grep SystemUIServer.app
501 57145 1 0 7:48AM ?? 0:00.42 /System/Library/CoreServices/SystemUIServer.app/Contents/MacOS/SystemUIServer
501 57165 43517 0 7:50AM ttys001 0:00.00 grep SystemUIServer.app
- The line that has the full path to the SystemUIServer.app is the one we want. The second number is the process ID, in my case, 57145.
- Type the following: kill -HUP 57145 (obviously substituting 57145 for your computer's process ID for the SystemUIServer.app)
- That will instruct the process to restart and reload its config. My invisible menu items came back immediately.