skype4b: Get-CsUserDatabaseState – Show SQL Database Servers

Here’s a quick tip to display the names of associated backend SQL primary and mirrored (if any) database servers of a Standard or Enterprise Edition Lync/Skype for Business Server 2015 Front-End pool:

Get-CsUserDatabaseState -RegistrarPool fepool.leedesmond.com

The result lists the Identity, Mirror and Online status of the SQL database servers of the specified FE registrar pool. This works since only this pool type houses the user store (database) which keeps key user related information like presence and routing data.

 

 

Get-CsPoolFabricState – UserServices not installed

On Skype for Business Server 2015, you may encounter:

Get-CsPoolFabricState: UserServices is not installed on this machine

Ensure that the value set to the -PoolFqdn parameter of this cmdlet indeed points to a Front-End Standard or Enterprise Edition Pool and not just a node’s FQDN in the server pool. All other pool types like Mediation, Edge or Persistent Chat are not valid (for obvious reason).

Still no change as reported in my last blog post on this very topic – the Get-CsPoolFabricState cmdlet does NOT generate any objects or allow its output to be captured. One workaround is to explicitly run the cmdlet as follows:

powershell.exe Get-CsPoolFabricState -PoolFqdn fe.leedesmond.com > out.txt

… and process the saved result with Select-String for instance.

RE: Skype for Business for Android – Exchange Settings (still) “Lost” v6.16.0.9

UPDATE (10 Jul 2017)

Microsoft publicly released on this day the Android version of Skype for Business 6.16.0.9.

The two Exchange settings “Skype for Business Anmeldeinformationen verwenden” and “Server automatisch erkennen” are now by default enabled regardless of previous states. A user must explicitly override the latter (off) to get EWS to work if auto config is not desired.

Likewise a user interface quirk as last reported, if “Skype for Business Anmeldeinformationen verwenden” is activated, the UI disables it when you revisit the config page. The option “Server automatisch erkennen” now correctly remains off with the given URL if configured as such before. As long as you hit Cancel and do not logoff, all should continue to function.

Note that IMs received over the Android mobile client remain on the main page until deleted. To do this, press and hold to pick the delete menu option. Simply trying to swipe away does not (yet?) delete an IM from the list.

Skype for Business for Android Mobile – Exchange Settings “Lost”

#skype4b

Like previous releases, the current version (6.16.0.7) of Skype for Business for Android mobile devices exposes 2 Exchange configuration options namely “Skype for Business Anmeldeinformationen verwenden” and “Server automatisch erkennen”.

If you disable the latter option, specify manually the “Exchange-Webdienste FQDN oder URL” and press OK to save the changes, the settings should take effect in an instance or so. The appearance of a list of upcoming skype4b meetings on the main and Calendar tab confirms that Exchange Web Services (EWS) connectivity is functioning as expected.

Nevertheless when you revisit the same Exchange configuration settings, you find that the “Skype for Business Anmeldeinformationen verwenden” is deactivated unexpectedly. Additionally, “Server automatisch erkennen” is now mysteriously re-enabled. By turning it off again, you see that the previously entered EWS FQDN/URL is still intact.

This is apparently a User-Interface only issue; from a functional perspective, everything should continue to work as normal until Microsoft fixes this UI quirk. Otherwise, you may have to logoff and sign-in to have the EWS settings take effect (or toggle the switches explicitly).

Speaker: Western European MVP Community Connection May/June 2017

MVPAn der diesjährigen Western European MVP Community Connection* habe ich einen Vortrag namens “So You Wanna Be A Courseware Author?”, die in Madrid bei Microsoft Spanien stattfindet. Ich freue mich auf diese Gelegenheit, mit MVP Kollegen und Microsofties aus 13 unterschiedlichen Ländern in der Regionen zu vernetzen und neue Freundschaften zu schliessen.

I have a presentation entitled “So You Wanna Be A Courseware Author?” which will be delivered at this year’s Western Europe MVP Community Connection* taking place at Microsoft Spain in Madrid. Really excited to have the opportunity to meet with and make acquaintance of MVP colleagues and MVP peers from 13 countries in the region.

* MVP Open Day 31 May – 02 June 2017

Update Digest: Skype for Business Server 2015 CU5 (May 2017)

Skype for Business Server 2015 Cumulative Update 5 “CU5” KB3061064
– version 9319.281
– released 17 May 2017 (download)
– list of bug/hot fixes per KB3061064
– adds Windows Server 2016 support!
– for Skype for Business Server 2015 running on Windows Server 2008 R2, Windows Server 2012 and Windows Server 2012 R2

Zürich PowerShell Training Kurs/Course (from May 2017)

PowerShellThe bad news is that I will miss another year of PowerShell Europe Conference in Hanover, Germany (2 – 5 May 2017). The very excellent news though is that I shall deliver and teach a private PowerShell 5.x course* to the biggest number one Swiss bank in the country, ranked as one of the top Fortune 500 global financial services institution worldwide.

How can I participate in or organize private (customized) lessons then? Simple really. Contact me for more information today. Or you can sign-up for any of my popular public PowerShell, Microsoft Windows Server 2016, MCSA certificate or specialized cloud training classes covering beginners to advanced levels:

  • Kurs: PowerShell V5.x – Einführung / Basics (link)
    Next (evening) class start Wed 10. May 2017
  • Kurs: PowerShell V5.x – Aufbau / Advanced (link)
    Next (evening) class start Wed 30. Aug 2017
  • Office 365, Azure, Exchange/Skype for Business Server, PowerShell Automation, etc. (contact)
  • Others

I look forward to work with you on training or consultancy engagements in your language (English, German, 中文, etc.) from Zurich, Switzerland to pretty much anywhere in the world.

#PowerShell #ITPros #Events #Training @ebzuerich

* hence the apparent quietness online

HELP: PowerShell 5.1 / 5.0 What’s New (and More) – Part 5 Functions

Many new functions were introduced or “reborn” as functions (where life started as cmdlets or vice versa) in PowerShell 5.0. Find-Command and Find-RoleCapability are the only 2 additions in PS 5.1 which brings the total function count to 59 for a default installation of Windows Server 2016 RTM (en-us).

PS 5.0

PS 5.1

Compress-Archive

Compress-Archive

ConvertFrom-SddlString

ConvertFrom-SddlString

Disable-DscDebug

Disable-DscDebug

Disable-NetworkSwitchEthernetPort

Disable-NetworkSwitchEthernetPort

Disable-NetworkSwitchFeature

Disable-NetworkSwitchFeature

Disable-NetworkSwitchVlan

Disable-NetworkSwitchVlan

Enable-DscDebug

Enable-DscDebug

Enable-NetworkSwitchEthernetPort

Enable-NetworkSwitchEthernetPort

Enable-NetworkSwitchFeature

Enable-NetworkSwitchFeature

Enable-NetworkSwitchVlan

Enable-NetworkSwitchVlan

Expand-Archive

Expand-Archive

Export-ODataEndpointProxy

Export-ODataEndpointProxy

Find-Command

Find-DscResource

Find-DscResource

Find-Module

Find-Module

Find-RoleCapability

Find-Script

Find-Script

Format-Hex

Format-Hex

Get-DscConfigurationStatus

Get-DscConfigurationStatus

Get-InstalledModule

Get-InstalledModule

Get-InstalledScript

Get-InstalledScript

Get-NetworkSwitchEthernetPort

Get-NetworkSwitchEthernetPort

Get-NetworkSwitchFeature

Get-NetworkSwitchFeature

Get-NetworkSwitchGlobalData

Get-NetworkSwitchGlobalData

Get-NetworkSwitchVlan

Get-NetworkSwitchVlan

Get-PSRepository

Get-PSRepository

Get-SilComputerIdentity

Get-SilComputerIdentity

Import-PowerShellDataFile

Import-PowerShellDataFile

Install-Module

Install-Module

Install-Script

Install-Script

New-Guid

New-Guid

New-NetworkSwitchVlan

New-NetworkSwitchVlan

New-ScriptFileInfo

New-ScriptFileInfo

New-TemporaryFile

New-TemporaryFile

Publish-Module

Publish-Module

Publish-Script

Publish-Script

Register-PSRepository

Register-PSRepository

Remove-DscConfigurationDocument

Remove-DscConfigurationDocument

Remove-NetworkSwitchEthernetPortIPAddress

Remove-NetworkSwitchEthernetPortIPAddress

Remove-NetworkSwitchVlan

Remove-NetworkSwitchVlan

Restore-NetworkSwitchConfiguration

Restore-NetworkSwitchConfiguration

Save-Module

Save-Module

Save-NetworkSwitchConfiguration

Save-NetworkSwitchConfiguration

Save-Script

Save-Script

Set-NetworkSwitchEthernetPortIPAddress

Set-NetworkSwitchEthernetPortIPAddress

Set-NetworkSwitchPortMode

Set-NetworkSwitchPortMode

Set-NetworkSwitchPortProperty

Set-NetworkSwitchPortProperty

Set-NetworkSwitchVlanProperty

Set-NetworkSwitchVlanProperty

Set-PSRepository

Set-PSRepository

Stop-DscConfiguration

Stop-DscConfiguration

Test-ScriptFileInfo

Test-ScriptFileInfo

Uninstall-Module

Uninstall-Module

Uninstall-Script

Uninstall-Script

Unregister-PSRepository

Unregister-PSRepository

Update-DscConfiguration

Update-DscConfiguration

Update-Module

Update-Module

Update-ModuleManifest

Update-ModuleManifest

Update-Script

Update-Script

Update-ScriptFileInfo

Update-ScriptFileInfo

Hyper-V: The operation cannot be performed while the object is in use (Windows Server 2016 / Windows 10)

You have a number of virtual machines running on your Windows Server 2016, Windows 10 or Windows Server 2008 R2 Hyper-V system. As soon as you try to start another VM in the Hyper-V Manager console or Start-VM virtmachine via PowerShell, a rather cryptic message keeps preventing you from doing so:

[Window Title]
Virtual Machine Connection

[Main Instruction]
The application encountered an error while attempting to change the state of ‘virtmachine’.

[Content]
‘virtmachine’ failed to change state.

The operation cannot be performed while the object is in use.

[Close]

To resolve this, disassociate any other VM from “Physical CD/DVD device” under media before you retry the operation on the failed VM.

HELP: PowerShell 5.1 / 5.0 What’s New (and More) – Part 4 Variables

The good news about system variables in Windows PowerShell is that only one new (preference) variable $InformationPreference is added starting with PS 5.0. It has a default value of SilentlyContinue and is listed in the about_Preference_Variables Help file (PS 5.1). You use this mainly to control how the new PS 5.x Write-Information cmdlet behaves. Of note is that Write-Host is a wrapper for Write-Information beginning with PS 5.0. However, the $InformationPreference variable only affects the latter cmdlet.

Desired State Configuration is a new feature introduced in PowerShell 4.0. The about_Automatic_Variables help file in PS 5.1 lists this $AllNodes variable where it automatically becomes available in the scope of a DSC configuration document when passed using the -ConfigurationData parameter. As a side note, you may be interested to know that development of DSC resources using the new class feature is possible starting in PS 5.0.

REFERENCES

– Writing a custom DSC resource with PowerShell classes (TechNet)