For the most part, there’s a pretty close tie between the items found in the Lync Server Control Panel and the parameters and property values used in Microsoft Lync Server 2010’s implementation of Windows PowerShell. For example, take a look at the following table, which compares the item labels used in the Edit Meeting Configuration dialog in the Control Panel with their Windows PowerShell equivalents:
Control Panel Labels
Windows PowerShell Properties/Parameters
PSTN callers bypass lobby
Designate as presenter
Assigned conference type by default
Admit anonymous users by default
Can’t get much closer than that, can you?
At any rate, we – what’s that? Well, yes, we did say that for the most part there’s a pretty close tie between the items found in the Lync Server Control Panel and the parameters and property values used in Microsoft Lync Server 2010’s implementation of Windows PowerShell. So does that mean that there are exceptions to that general rule? Well, to be perfectly honest, yes, there are. For the most part, though, those exceptions aren’t worth losing any sleep over.
Right, we did use the phrase “for the most part” again, didn’t we? We should probably stop doing that; it just creates more work on our end.
OK, as it turns out there is at least one important area in which the values shown in the Control Panel and the corresponding PowerShell properties and parameters don’t match up very well: telephony. If you create or modify a user account using the Control Panel you’ll see the following telephony options:
Remote call control
And if you look at the PowerShell parameters for the Set-CsUser cmdlet you’ll see parameter names like these:
OK, at first glance that doesn’t look too terribly bad, even though Control Panel doesn’t seem to have an option corresponding to –IPPBXSoftPhoneRoutingEnabled. Oh, and PowerShell doesn’t seem to have a parameter that goes along with Control Panel’s PC-to-PC only option. That’s bad. Even badder, however is the fact that you can immediately run into problems if you actually try to use one of these PowerShell parameters to modify the telephony options for a user. For example, suppose Ken Myer has been enabled for Enterprise Voice, and you’d now like to make a change and enable him for Remote Call Control instead. You might think the following command would do the trick:
Set-CsUser "Ken Myer" –RemoteCallControlTelephonyEnabled $True
But you would be wrong:
Set-CsUser : Remote call control mode cannot be set when user is enabled for Enterprise Voice.At line:1 char:11+ set-csuser <<<< "Ken Myer" -RemoteCallControlTelephonyEnabled $True + CategoryInfo : InvalidOperation: (CN=Ken Myer,OU=V_ou,DC=Vdomain,DC=com:OCSADUser) [Set-CsUser], ManagementException + FullyQualifiedErrorId : SetCSUser,Microsoft.Rtc.Management.AD.Cmdlets.SetOcsUserCmdlet
As it turns out, you can’t enable Ken Myer for Remote Call Control if he’s currently enabled for Enterprise Voice (or vice-versa). In fact, there’s a fairly complex little matrix of parameters and parameter values that must be used in order to configure the telephony options for a user.
Good point: if only someone could show us those parameters and parameter values, and then show how those things relate to the telephony options found in the Control Panel. You know, if only someone could put together a table like this one:
Control Panel option
$False or $True
Hey, we told you it was a little complicated, didn’t we? But here’s the deal: if you want to set Ken Myer’s telephony option to Audio/video disabled you need to use the preceding table to construct a command like this one:
Set-CsUser "Ken Myer" –AudioVideoDisabled $True –RemoteCallControlTelephonyEnabled $False –IPPBXSoftPhoneRoutingEnabled $False –EnterpriseVoiceEnabled $False
Note. OK, depending on how Ken’s account is currently configured you might not need to use all those parameters. But the above command will always set Ken’s telephony option to Audio/video disabled, regardless of how his account is currently set up.
The trick here? Set the –AudioVideoDisabled parameter to $True and everything else to $False.
Want to set Ken’s account to PC-to-PC only? Then use this command:
Set-CsUser "Ken Myer" –AudioVideoDisabled $False –RemoteCallControlTelephonyEnabled $False –IPPBXSoftPhoneRoutingEnabled $False –EnterpriseVoiceEnabled $False
As you can see, that was an easy one: everything gets set to $False.
Want to configure Ken’s account so it’s enabled for Enterprise Voice? Okey-doke:
Set-CsUser "Ken Myer" –AudioVideoDisabled $False –RemoteCallControlTelephonyEnabled $False –IPPBXSoftPhoneRoutingEnabled $False –EnterpriseVoiceEnabled $True
Note. Actually, in this case –IPPBXSoftPhoneRoutingEnabled can be set to either $True or $False. Just make sure that –EnterpriseVoiceEnabled is set to $True and that –AudioVideoDisabled and –RemoteCallControlTelephonyEnabled are both set to $False.
Last, but surely not least, this command configures Ken’s account for Remote Call Control:
Set-CsUser "Ken Myer" –AudioVideoDisabled $False –RemoteCallControlTelephonyEnabled $True –IPPBXSoftPhoneRoutingEnabled $False –EnterpriseVoiceEnabled $False
You’re way ahead of us: set –RemoteCallControlTelephonyEnabled to $True and everything else to $False.
So, OK, it is a little complicated. But just use the four commands listed above and you won’t have any problems. We promise.
For the most part anyway ….
But what i have to do, if there is no –IPPBXSoftPhoneRoutingEnabled parameter enabled in Lync Powershell Console? This parameter is exactly what i need:-(
I'm running into an interesting problem where even though I have RCC disabled using Powershell, the configuration information listed on the Lync client still shows RCC Telephony mode as being active.. anyone else migrate from OCS2007r2 with a similar issue?
Like Kirill said there is no –IPPBXSoftPhoneRoutingEnabled parameter anymore, I can't find a reference to it in Lync at all. What's happened to it?
I can't find the –IPPBXSoftPhoneRoutingEnabled either
If you run "Set-Csuser -audiovideodisable $false" it sets the user to PC-to-PC only