Tuesday 5 May 2015

Skype for Business Server 2015 - New Commandlets

Hello readers.  Exciting times I think you'll agree.  Lync is now Skype for Business and Skype for Business is now generally available (as of 1st May 2015).

Being the geek I am, I have already upgraded a Lync 2013 Front End Server to Skype for Business Server 2015.  I've been having a general poke around today.  The biggest question on anyone's mind when they are looking for a reason to upgrade to the latest and greatest version of a product, besides "is it stable?" is undoubtedly "what's new?".

For those of you that didn't know, or those that never looked, there were 743 Commandlets in Lync Server 2013.  I won't bother listing them, you know what they are and what they do.  Skype for Business Server 2015 has 806, a full 63 more than Lync.  It is also worth noting that 2 of the Lync commandlets are no longer in Skype for Business, so there are actually 65 new commandlets in Skype for Business.  

For Simplicity I have grouped the commandlets by Noun.  Most commandlets have at least one or as many as 5 Verbs (Get, Set, New etc).  I have also attempted to precede each Noun section with a short description of what it is all about.

Address Book Normalization Configuration
Normalization rules define the requirements for converting (or translating) numbers from an internal Skype for Business Server 2015 format to the standard (E.164) format. 

Address Book normalization configuration settings represent collections of normalization created for use by the Address Book server. These collections can be defined at the global scope or at the site scope.


Cmdlet Information
Get-CsAddressBookNormalizationConfiguration Returns the Address Book normalization configuration settings currently in use in the organization. Address Book normalization settings are used to convert phone numbers to a format readily understood by Skype for Business Server 2015.
New-CsAddressBookNormalizationConfiguration Creates a new collection of Address Book normalization configuration settings. Address Book normalization settings are used to convert phone numbers to a format readily understood by Skype for Business Server 2015.
Remove-CsAddressBookNormalizationConfiguration Deletes one or more collections of Address Book normalization configuration settings. Address Book normalization settings are used to convert phone numbers to a format readily understood by Skype for Business Server 2015.
Set-CsAddressBookNormalizationConfiguration Modifies one or more collections of Address Book normalization configuration settings. Address Book normalization settings are used to convert phone numbers to a format readily understood by Skype for Business Server 2015.

Address Book Normalization Rule
Normalization rules define the requirements for converting (or translating) numbers from an internal Skype for Business Server 2015 format to a standard (E.164) format.

Address Book normalization rules carry out these conversions and translations for Address Book servers.


Cmdlet Information
Get-CsAddressBookNormalizationRule Returns information about the Address Book normalization rules in use in the organization. Address Book normalization rules are used to convert phone numbers to a format readily understood by Skype for Business Server 2015.
New-CsAddressBookNormalizationRule Creates a new Address Book normalization rule. Address Book normalization rules are used to convert phone numbers to a format readily understood by Skype for Business Server 2015.
Remove-CsAddressBookNormalizationRule Removes an Address Book normalization rule. Address Book normalization rules are used to convert phone numbers to a format readily understood by Skype for Business Server 2015.
Set-CsAddressBookNormalizationRule Modifies an existing Address Book normalization rule. Address Book normalization settings are used to convert phone numbers to a format readily understood by Skype for Business Server 2015.

Call Via Work Policy
Call Via Work is a new option available to pair the Skype for Business Client to your legacy desk phone.  Call Via Work will be similar to the default behavior of the Lync 2010 Mobile client and the fall back behavior of the Lync 2013 mobile client.  A user specifies their Call Via Work number which could be their extension number, DDI or mobile number.  When the user places call, the server places two calls via a configured PSTN gateway.  One to the Call Via Work number and another to the intended recipient.  Skype for Business then bridges the calls together.  The result will be that the user will be initiating the call in Skype for Business, but then uses the desk phone to for audio.

This is an alternative (and eventual successor) to Remote Call Control (RCC).


Cmdlet Information
Get-CsCallViaWorkPolicy Use the Get-CsCallViaWorkPolicy cmdlet to return call via work policies. Call via work policies enable and manage the characteristics of outbound calls placed through the Skype for Business client.
Grant-CsCallViaWorkPolicy Use the Grant-CsCallViaWorkPolicy cmdlet to assign call via work policies to a user or group of users. Call via work policies enable and manage the characteristics of outbound calls placed through the Skype for Business client.
New-CsCallViaWorkPolicy Use the New-CsCallViaWorkPolicy cmdlet to create a new call via work policy that enables and manages the characteristics of outbound calls placed through the Skype for Business client.
Remove-CsCallViaWorkPolicy Use the Remove-CsCallViaWorkPolicy cmdlet to delete an existing call via work policy. Call via work policies enable and manage the characteristics of outbound calls placed through the Skype for Business client.
Set-CsCallViaWorkPolicy Use the Set-CsCallViaWorkPolicy to modify an existing call via work policy that enables and manages the characteristics of outbound calls placed through the Skype for Business client.

Conversation History Configuration
Prior to the release of Skype for Business Server 2015, conversation histories were stored in the Conversation History folder in users's mailbox, written by the rich client. This made it difficult to access the conversation history from mobile devices because the Conversation History folder is typically not replicated to mobile devices. 

With Skype for Business Server 2015, conversation histories and missed IM notifications can be stored on the server in user mailboxes, which makes them easily accessible from mobile devices. Administrators can manage the server-side processing of these conversation histories by using the conversation history configuration settings.


Cmdlet Information
Get-CsConversationHistoryConfiguration Returns the conversation history configuration settings for the organization. These settings manage conversation histories for mobile device users.
Remove-CsConversationHistoryConfiguration Resets the conversation history configuration settings for the organization. These settings manage conversation histories for mobile device users.
Set-CsConversationHistoryConfiguration Modifies the conversation history configuration settings for the organization. These settings manage conversation histories for mobile device users.

IM Translation Configuration
As it says, the cmdlet is reserved for internal Microsoft Use.  This isn't one I have heard of at Microsoft, but it doesn't take a rocket scientist to guess that this has something to do with bringing Skype for Consumer translation functionality to Skype for Business.  Watch this space, as they say.


Cmdlet Information
Get-CsImTranslationConfiguration This cmdlet is reserved for internal Microsoft use.
New-CsImTranslationConfiguration This cmdlet is reserved for internal Microsoft use.
Remove-CsImTranslationConfiguration This cmdlet is reserved for internal Microsoft use.
Set-CsImTranslationConfiguration This cmdlet is reserved for internal Microsoft use.

Storage Service Configuration
The Skype for Business Server 2015 Storage Service enables Skype for Business Server 2015 components (such as archiving) to use Exchange as a back-end data store. This helps to reduce operating costs; for example, you do not need to have separate storage solutions for Exchange archiving and for Skype for Business Server 2015 archiving. The Storage Service also enables Skype for Business Server 2015 to leverage the heavy investment that has been made in Exchange archiving and storage, and prevents administrators from having to use multiple tools to retrieve archived data.
 

Cmdlet Information
Get-CsStorageServiceConfiguration Returns information about existing instances of the Skype for Business Server 2015 Storage Service. The storage service provides a common infrastructure that enables Skype for Business Server 2015 components to use Exchange as a back-end data store.
New-CsStorageServiceConfiguration Creates new instances of the Skype for Business Server 2015 Storage Service. The storage service provides a common infrastructure that enables Skype for Business Server 2015 components to use Exchange as a backend data store.
Remove-CsStorageServiceConfiguration Removes existing instances of the Skype for Business Server 2015 Storage Service. The storage service provides a common infrastructure that enables Skype for Business Server 2015 components to use Skype for Business Server 2015 as a back-end data store.
Set-CsStorageServiceConfiguration Modifies existing instances of the Skype for Business Server 2015 Storage Service. The storage service provides a common infrastructure that enables Skype for Business Server 2015 components to  use Exchange as a back-end data store. Note that, at this point in time, there are no property values that can be modified by using this cmdlet.

Telemetry Configuration
There is no information in the help or online that I can find.  If I do get an update I'll post it here.  If you find out and let me know I'll post an update and credit you with the find.


Cmdlet Information
Get-CsTelemetryConfiguration Provide the topic introduction here.
New-CsTelemetryConfiguration Provide the topic introduction here.
Remove-CsTelemetryConfiguration Provide the topic introduction here.
Set-CsTelemetryConfiguration Provide the topic introduction here.

Third Party Video System
Third-party video systems are VTC devices that provide remote users with telepresence capabilities (most notably audio and video). In Skype for Business Server 2015, third-party VTC devices can be configured as Active Directory contact objects, much in the same way that analog phones and common area phones can be configured as contact objects. Associating each VTC device with a contact object makes it easy for administrators to track, and to manage, these devices. 


Cmdlet Information
Get-CsThirdPartyVideoSystem Returns information about Directory contact objects that represent a third-party video system. A third-party video system is a video teleconferencing (VTC) device that provides users with telepresence: the ability to participate in online meetings and conferences with full audio and video capabilities.
Move-CsThirdPartyVideoSystem Moves an Active Directory contact object that represents a third-party video system. A third-party video system is a video teleconferencing (VTC) device that provides users with telepresence: the ability to participate in online meetings and conferences with full audio and video capabilities.
New-CsThirdPartyVideoSystem Creates an Active Directory contact object that represents a third-party video system. A third-party video system is a video teleconferencing device (VTC) that provides users with telepresence: the ability to participate in online meetings and conferences with full audio and video capabilities.
Remove-CsThirdPartyVideoSystem Removes an Active Directory contact object that represents a third-party video system. A third-party video system is a video teleconferencing (VTC) device that provides users with telepresence: the ability to participate in online meetings and conferences with full audio and video capabilities.
Set-CsThirdPartyVideoSystem Modifies an existing Active Directory contact object that represents a third-party video system. A third-party video system is a video teleconferencing device (VTC) that provides users with telepresence: the ability to participate in online meetings and conferences with full audio and video capabilities.

Third Party Video System Policy
These commandlets are used to manage the policies for the Third Party Video Systems.

One key management task related to VTC devices is to enable (or disable) the ability of these devices to send low-resolution video. By default, VTC devices are allowed to send low-resolution video. However, administrators can create third-party video system policies that disable the use of low-resolution video. This might be useful for devices located in conference rooms or other areas where low-resolution video is not considered acceptable.



Cmdlet Information
Get-CsThirdPartyVideoSystemPolicy Returns information about the third-party video system policies configured for use in the organization. These policies determine whether or not a VTC (video teleconferencing) device is allowed to send low-resolution video.
Grant-CsThirdPartyVideoSystemPolicy Assigns a per-user third-party video system policy to video teleconferencing (VTC) devices. These policies determine whether or not the VTC is allowed to send low-resolution video.
New-CsThirdPartyVideoSystemPolicy Creates a new third-party video system policy for use with video teleconferencing (VTC) devices. These policies determine whether or not the VTC is allowed to send low-resolution video.
Remove-CsThirdPartyVideoSystemPolicy Removes a third-party video system policy. Video system policies determine whether or not a VTC (video teleconferencing) device is allowed to send low-resolution video.
Set-CsThirdPartyVideoSystemPolicy Creates a new third-party video system policy for use with video teleconferencing (VTC) devices. These policies determine whether or not the VTC is allowed to send low-resolution video.

Video Interop Server Configuration
The Video Interop Server (VIS) enables you to incorporate 3rd party video teleconferencing systems (VTCs) into your Skype for Business infrastructure. These commandlets are sued to manage the VIS configuration settings.


Cmdlet Information
Get-CsVideoInteropServerConfiguration Use the Get-CsVideoInteropServerConfiguration cmdlet to return information about Video Interop Server (VIS) configuration settings. VIS configuration settings are scoped to appropriate VIS instances, and will govern the behavior of those instances. The Video Interop Server (VIS) enables you to incorporate 3rd party video teleconferencing systems (VTCs) into your Skype for Business infrastructure. VIS is a Skype for Business service that runs on a standalone pool and cannot be co-located on an FE pool.
New-CsVideoInteropServerConfiguration Use the New-CsVideoInteropServerConfiguration cmdlet to create a new collection of Video Interop Server (VIS) configuration settings. The configuration can then be scoped to the appropriate VIS instances, and will govern the behavior of those instances. The Video Interop Server (VIS) enables you to incorporate 3rd party video teleconferencing systems (VTCs) into your Skype for Business infrastructure. VIS is a Skype for Business service that runs on a standalone pool and cannot be co-located on an FE pool.
Remove-CsVideoInteropServerConfiguration Use the Remove-CsVideoInteropServerConfiguration cmdlet to remove an existing collection of Video Interop Server (VIS) configuration settings. Video Interop Server configuration settings are scoped to appropriate Video Interop Server (VIS) instances, and will govern the behavior of those instances.
Set-CsVideoInteropServerConfiguration Use the Set-CsVideoInteropServerConfiguration cmdlet to modify an existing collection of Video Interop Server (VIS) configuration settings. VIS settings are scoped to appropriate VIS instances, and will govern the behavior of those instances. The Video Interop Server (VIS) enables you to incorporate 3rd party video teleconferencing systems (VTCs) into your Skype for Business infrastructure. VIS is a Skype for Business service that runs on a standalone pool and cannot be co-located on an FE pool.

Video Interop Server Synthetic Transaction
These commandlets are used to create and manage synthetic transactions for the VIS role.  

Synthetic transactions are used in Skype for Business Server to verify that users are able to successfully complete common tasks such as logging on to the system, exchanging instant messages, or making calls to a phone located on the public switched telephone network (PSTN). These tests can be conducted manually by an administrator, or they can be automatically run by an application such as System Center Operations Manager.


Cmdlet Information
Get-CsVideoInteropServerSyntheticTransaction Use the Get-CsVideoInteropServerSyntheticTransactionConfiguration cmdlet to retrieve Video Interop Server (VIS) synthetic transaction configurations.
New-CsVideoInteropServerSyntheticTransaction Use the New-CsVideoInteropServerSyntheticTransactionConfiguration cmdlet to create a new Video Interop Server (VIS) synthetic transaction configuration. The cmdlet can be applied at the Global, Site, and Service levels.
Remove-CsVideoInteropServerSyntheticTransaction Use the Test-CsP2PVideoInteropServerSipTrunkAV cmdlet to test the ability of a video gateway to conduct a peer-to-peer audio/video (A/V) call to a Skype for Business user via a Video Interop Server (VIS) pool.
Set-CsVideoInteropServerSyntheticTransaction Use the Set-CsVideoInteropServerSyntheticTransactionConfiguration cmdlet to modify an existing Video Interop Server (VIS) synthetic transaction configuration.

Video Trunk Configuration
Video Trunk configuration settings are scoped to appropriate Video Gateway instances, and will govern the behavior of the SIP Trunk between each Video Gateway instance and the paired Video Interop Server instance that together define the Video Trunk.


Cmdlet Information
Get-CsVideoTrunkConfiguration Use the Get-CsVideoTrunkConfiguration to retrieve Video Trunk configuration settings. Video trunk settings define the Session Initiation Protocol (SIP) trunk between the Video Interoperability Server (VIS) and a Video Gateway.
New-CsVideoTrunkConfiguration Use the New-CsVideoTrunkConfiguration to create a new video trunk configuration containing settings to manage a video Session Initiation Protocol (SIP) trunk between the Video Interop Server (VIS) and a Video Gateway.

Video Trunk configuration settings are scoped to appropriate Video Gateway instances, and will govern the behavior of the SIP Trunk between each Video Gateway instance and the paired Video Interop Server instance that together define the Video Trunk. The Video Interop Server in Skype for Business Server 2015 enables you to incorporate 3rd party video teleconferencing systems (VTCs) into your Skype for Business Server 2015 infrastructure. The Video Interop Server is a Skype service that runs on a standalone pool and cannot be co-located on an FE pool.
Remove-CsVideoTrunkConfiguration Use the Remove-CsVideoTrunkConfiguration to remove one or more Video Trunk configurations. Video Trunk configuration settings are scoped to Video Gateway instances, and govern the behavior of the Session Initiation Protocol (SIP) trunk between each Video Gateway instance and the paired Video Interop Server instance that together define the Video Trunk.
Set-CsVideoTrunkConfiguration Use the Set-CsVideoTrunkConfiguration to modify one or more Video Trunk configurations containing settings applicable to a video SIP trunk between the Video Interoperability Server (VIS) and a Video Gateway.

Video Trunk configuration settings are scoped to appropriate Video Gateway instances, and will govern the behavior of the SIP Trunk between each Video Gateway instance and the paired Video Interop Server instance that together define the Video Trunk. The Video Interop Server in Skype for Business Server 2015 enables you to incorporate 3rd party video teleconferencing systems (VTCs) into your Skype for Business Server 2015 infrastructure. The Video Interop Server is a Skype service that runs on a standalone pool and cannot be co-located on an FE pool.

Computer Fail over and Fail Back
The Invoke-CsComputerFailOver cmdlet migrates the users and data, and drains the existing conferences and sessions before the Skype for Business services are stopped and disabled to prevent accidental restart when computer is rebooted.

The fail back, obviously, fails everything back.

Cmdlet Information
Invoke-CsComputerFailBack Use the Invoke-CsComputerFailBack to flag a server as available for load balancing in a Skype for Business Server 2015 pool. To successfully run this cmdlet you need to run it using an account that has administrator privileges on each server in the source and target pools.
Invoke-CsComputerFailOver Use the Invoke-CsComputerFailOver to force a computer in a Skype for Business Server 2015 pool to failover to other servers within the pool. To successfully run this cmdlet you need to run it  using an account that has administrator privileges on each server in the source and target pools.

Video Interop Server, Gateways and Trunks
These commandlets are all about the VIS role in one way or anotherIt should be noted that VIS servers, Trunks and Gateways need to be set up in the Topology Builder similar to PSTN Gatwways and Trunks.  Once in the topology you can use these commandlets to manage and test the Trunks and Gateways.

Cmdlet Information
Get-CsVideoTrunk Use the Get-CsVideoTrunk to list properties about the video trunks in your organization. Video trunks are Session Initiation Protocol (SIP) trunks between the Video Interop Server and a Video Gateway that are used to setup video calls between 3rd party video teleconferencing systems (VTCs) connected to the Video Gateway and Skype conferences or Skype endpoints.
Set-CsVideoGateway Use the Set-CsVideoGateway cmdlet to modify the property values of one or more Video Gateways. Video Gateways route traffic between internal and 3rd party video devices such as an internal Skype endpoint exchanging video with a 3rd party PBX supporting 3rd party video teleconferencing systems (VTCs). The Video Gateway and a Video Interop Server (VIS) use a Session Initiation Protocol (SIP) trunk to connect video calls between 3rd party VTCs and internal endpoints.
Test-CsP2PVideoInteropServerSipTrunkAV Use the Test-CsP2PVideoInteropServerSipTrunkAV cmdlet to test the ability of a video gateway to conduct a peer-to-peer audio/video (A/V) call to a Skype for Business user via a Video Interop Server (VIS) pool.
Set-CsVideoInteropServerSyntheticTransaction Use the Set-CsVideoInteropServerSyntheticTransactionConfiguration cmdlet to modify an existing Video Interop Server (VIS) synthetic transaction configuration.

Random
These commandlets don't belong to a larger group so I grouped them here. Where available I have added additional information next to each commandlet.


Cmdlet Information
Debug-CsDataConference Returns diagnostic information for the data conferencing capabilities included in Skype for Business Server 2015.
Debug-CsStorageServiceFailures No Syntax or Description
Get-CsClsAgentStatus Use the Get-CsClsAgentStatus to return information about the ClsAgent service on the local machine.

The Get-CsClsAgentStatus cmdlet returns information about the ClsAgent, including version, service status, log storage details, and disk free space. 
Get-CsPresenceManagementState Use the Get-CsPresenceManagementState to return the notification settings of a computer or pool. The management state settings determine the batching and timing of Skype for Business Server 2015 notifications.
Import-CsCompanyPhoneNormalizationRules Use the Import-CsCompanyPhoneNormalizationRules cmdlet to import custom phone normalization rules defined in Company_Phone_Number_Normalization_Rules.txt used in previous server versions into Skype for Business Server 2015 environments.

The Import-CsCompanyPhoneNormalizationRules cmdlet uses GUID names for the new normalization rules as name is required in the Skype for Business Server configuration schema, and does not exist in the legacy normalization file format. These GUID names can be replaced with more appropriate values by using Set-CsAddressBookNormalizationConfiguration cmdlet after the migration is completed.

Alternatively, the New-CsAddressBookNormalizationConfiguration and Set-CsAddressBookNormalizationConfiguration cmdlets can also be used to keep custom normalization rule definitions in sync. 

Start-CsPool Use the Start-CsPool cmdlet to start a Skype for Business Server pool. A pool is a set of servers, configured identically, that work together to provide services for a common group of users.
This cmdlet only applies to Front End Servers (not Edge servers).
Set-CsPresenceManagementState Use the Set-CsPresenceManagementState cmdlet to modify the settings of the Skype for Business Server 2015 management state. The management state settings determine the batching and timing of Skype for Business Server 2015 notifications. 

Generally the Set-CsPresenceManagementState cmdlet should only be used under the direction of Microsoft support. Setting the presence management parameters incorrectly can result in unwanted network behavior, or cause presence not to update.
Test-CsManagementServer Verifies that the Central Management service is working correctly. The Central Management service is responsible for replicating data between the Central Management store and computers running Lync Server services or server roles.

The Central Management service is responsible for replicating data between the Central Management store and computers running Lync Server services or server roles. The Central Management service runs on a single Front End pool (or a single Standard Edition server) and facilitates replication throughout the Lync Server infrastructure. The Test-CsManagementServer cmdlet enables you verify that the Management service is working correctly. 

So as you can see there are quite a lot of new things in Skype for Business Server 2015.  

Is it enough to convince you to upgrade?  I'll dive in deeper in another post, but so far I can see there seems to be an emphasis on interop with existing assets.   

You can get life out of your legacy phones with Call Via Work.  This previously needed client or server side RCC which was often clunky and unreliable.  

You can get life out of your very expensive legacy Video system with the new VIS role.  This previously needed expensive video bridge infrastructure or cloud bridging.  

These alone are great strides in the right direction.  

Everything else is more of a feature change or enhancement much the same as installing a new Cumulative Update.  And I know you keep your servers up to date with CUs don't you?