Registry locations
HKCU\Software\Microsoft\Communicator\AutoOpenMainWindowWhenStartup
Allowed registry values
· 0 – The Contact List will not display onscreen when you logon to Windows
· 1 – The Contact List will display onscreen when you log on to Windows
Registry value type
REG_DWORD
Default setting
1: Lync is automatically brought to the foreground when it starts
To be perfectly honest, when we first saw this option in the Office Communicator 2007 R2 user interface it didn’t make much sense to us. Back then the setting was labeled Automatically open the contact list when Communicator starts, and we didn't understand what that was supposed to mean: after all, wasn't the Contact List always open when you started Communicator?
As it turns out, however, this option actually did make sense; you just had to know what it meant. (Fortunately the setting has been relabeled in Microsoft Lync 2010, which makes it much easier to understand.) So what happens if this option is enabled? This happens: each time you start Lync the Contact List will appear on screen and in the foreground, something like this:
And what happens if you don’t select this option? In that case, you won’t see the Contact List on screen; instead, all you’ll see is the Microsoft Lync icon running in the task bar or the Notification area:
Either way, it’s up to you. Do you want to see Lync jump into the foreground every time it starts, or would you prefer to have it start unobtrusively in the background? To be honest, it makes no difference to us at all.
Oh, good point: if it’s up to you to configure this option then how exactly do you configure this option? Well, one way is to select (or clear) the Show Lync in foreground when it starts checkbox. (We told you it had a much better label now than it did in 2007 R2.) That’s a checkbox you’ll find on the Personal tab of the Options dialog box:
You can also programmatically control what happens to the Contact List each time you start Lync. If you’d like to actually see Microsoft Lync each time you start the application then all you need to do is set the HKCU\SOFTWARE\Microsoft\Communicator\AutoOpenMainWindowWhenStartup registry value to 1. Happy just to have the Lync icon appear in the task bar or Notification area? Then set the registry value to 0. Life doesn’t get any better than that, does it?
And don’t worry: we’re about to show you exactly how to do that.
For starters, here's a Windows PowerShell script that retrieves the current value of AutoOpenMainWindowWhenStartup from the local computer. If you'd rather retrieve this value from a remote computer, simply set the value of the variable $computer to the name of that remote computer. For example:
$computer = "atl-ws-001.litwareinc.com"
Here's the script for retrieving the value:
$computer = "."
$registry = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey("CurrentUser", $computer)
$key = $registry.OpenSubKey("SOFTWARE\Microsoft\Communicator", $True)
$value =$key.GetValue("AutoOpenMainWindowWhenStartup",$null)
if ($value -eq 1) {$value = "Yes"}
if ($value -eq 0) {$value = "No"}
Write-Host "Show Lync in foreground when it starts: $value"
And here's a script that sets the value of AutoOpenMainWindowWhenStartup. In this case, the script causes Lync to open in the foreground; that's done by setting AutoOpenMainWindowWhenStartup to 1. To have Lync open up in the background, set AutoOpenMainWindowWhenStartup to 0:
$key.SetValue("AutoOpenMainWindowWhenStartup",0,"DWORD")
Here you go:
$key.SetValue("AutoOpenMainWindowWhenStartup",1,"DWORD")
HKCU\Software\Microsoft\Communicator\AlwaysShowMenu
· 00 00 00 00 – The menu bar is not visible
· 01 00 00 00 – The menu bar is visible
REG_BINARY
00 00 00 00: The menu bar is not visible
Did you know that the Microsoft Lync user interface includes a menu bar? Well, don't feel bad; we didn't know that, either, at least not until we started looking at some of the options for configuring Microsoft Lync. By default, Lync doesn't display a menu bar; instead, you need to click the little arrow next to that thing that looks like a gear in order to get to the commands and options available in Microsoft Lync:
Needless to say, there isn't anything wrong with that; if there was we wouldn't have made it the default behavior. On the other hand, if you'd prefer to see a good old-fashioned menu bar within Microsoft Lync, well, then just configure Lync to display a good old-fashioned menu bar like this one:
Cool, huh? As it turns out, there are at least two ways to show (or to hide) the menu bar in Microsoft Lync. For one, you can click the little arrow next to the thing that looks like a gear and select Show Menu Bar.
Alternatively, you can do the same thing by manipulating the HKCU\SOFTWARE\Microsoft\Communicator\AlwaysShowMenu registry value. The following PowerShell script shows you how you can retrieve the current value of the AlwaysShowMenu registry value on the local computer. If you'd prefer to retrieve this value from a remote computer, just set the value of the variable $computer to the name of that remote computer. For example:
Here's how you can retrieve that value:
$value =$key.GetValue("AlwaysShowMenu",$null)
Write-Host "Show menu bar: $value"
That's nice, but we did say something about manipulating this value, didn't we? Okey-doke. Our next script shows how you can configure the value of AlwaysShowMenu. In this case, the script displays the menu bar; that's done by setting AlwaysShowMenu to 1. To hide the menu bar, set AlwaysShowMenu to 0:
$key.SetValue("AlwaysShowMenu",0,"DWORD")
Here's the script:
$key.SetValue("AlwaysShowMenu",[byte[]]@(1,0,0,0),"Binary")
HKCU\Software\Microsoft\Communicator\ShowPhoto
· 0: Photos of yourself and all your contacts are not displayed in Microsoft Lync
· 1: Photos of yourself and all your contacts are displayed in Microsoft Lync
1: Photos of yourself and all your contacts are displayed in Lync
One of the cool new features found in Microsoft Lync 2010 is the ability to show not only your picture, but pictures of all your contacts as well. Assuming you and your contacts have all decided to allow your pictures to be shown, an instance of Microsoft Lync will look something like this:
Like we said: pretty cool.
But one of the other cool new features in Microsoft Lync is this: Microsoft Lync gives you a considerable amount of control over the things you see (or don't see) in the user interface. For example, suppose you don't want to see everyone's picture (including your own) in the Contact List. That's fine; one of the settings available in the Options dialog box is the Show photos of contacts checkbox:
If you clear this checkbox then neither your photo nor the photos of any of your contacts will be shown in Lync:
It's entirely up to you.
We should probably point out that this does not prevent other people from seeing your picture; if you want to do that, you need to go back into the Options dialog box and select the option Do not show my picture
You can even configure things so that you can see everyone's picture except yours. To do that, select Do not show my picture and leave Show photos of contacts selected. After you've done all that, no one (including you) will see your photo. But you'll still be able to see everyone else's photo (unless they, too have selected Do not show my picture):
Another way to enable/disable the showing of photos within Microsoft Lync is to modify the HKCU\SOFTWARE\Microsoft\Communicator\ShowPhoto value in the registry. Before we show you how to do that, however, let's first show you a script that retrieves that value from the local computer. If you'd prefer to retrieve this value from a remote computer, simply set the value of the variable $computer to the name of that remote computer. For example:
Here's the script that lets you retrieve the value:
$value =$key.GetValue("ShowPhoto",$null)
Write-Host "Show photos of contacts: $value"
And here's a script that sets the value of ShowPhoto. In this case, the script enables showing pictures of yourself and your contacts; that's done by setting ShowPhoto to 1. To suppress pictures of both yourself and your contacts, set ShowPhoto to 0:
$key.SetValue("ShowColorBand",0,"DWORD")
In other words:
$key.SetValue("ShowPhoto",1,"DWORD")
HKCU\Software\Microsoft\Communicator\suspendSoundWhenBusy
· 0 – Lync will not suppress sounds when your status is set to Busy
· 1 – Lync will suppress sounds when your status is set to Busy
0: Sounds are not muted when your status is set to Busy
Let’s say you’re currently talking on the phone and your Microsoft Lync status has been set to Busy. Under those conditions, do you really want your computer to start chirping at you each time you get a new instant message, or each time one of your tagged contacts logs on or logs off? Well, maybe you do, and maybe you don’t. Either way, there’s a setting within Microsoft Lync that lets you decide whether or not you want sounds played any time you are Busy. You can find this setting on the Ringtones and Sounds tab in the Options dialog box:
So is there another way to configure this setting? Of course there is: just modify the HKCU\SOFTWARE\Microsoft\Communicator\suspendSoundWhenBusy registry value. (Yes, for some reason the initial s is lowercase. Go figure.) If you want Lync to keep quiet any time you’re Busy then set this value to 1. If it’s OK for Lync to make noise from time-to-time while you’re Busy then set this value to 0.
All in all, pretty simple and straightforward.
The following PowerShell script shows how you can retrieve the current value of suspendSoundWhenBusy from the local computer. If you'd prefer to retrieve that information from a remote computer, set the value of the variable $computer to the name of that remote computer. For example:
That also seems pretty simple and straightforward, doesn't it?
Here's the script that retrieves the suspendSoundWhenBusy value:
$value =$key.GetValue("suspendSoundWhenBusy",$null)
Write-Host "Keep sounds to a minimum when my status is Busy: $value"
And here's a script that lets you change that value. In this case, the script tells Lync to suspend sounds any time you're busy; that's done by setting suspendSoundWhenBusy to 1. To allow sounds to play even when you're busy, set suspendSoundWhenBusy to 0:
$key.SetValue("suspendSoundWhenBusy",0,"DWORD")
Here's how you change the value:
$key.SetValue("suspendSoundWhenBusy",1,"DWORD")