Skype for Business – Detailed User Configuration Report

I am pleased to announce and release a new script tool that will allow administrators to export user configuration details from Skype for Business. The script has 3 modes:

  1. User Mode – where administrators can enter the SIP address of the user they want to report on
  2. Domain Mode = where administrators can report on all users who are a member of a specific SIP domain
  3. Enterprise Mode – where administrators can report on all Skype for Business enabled users

The script will produce HTML based reports for each user that can be accessed by a homepage.

In order to view the configuration settings for a particular user click on the details link

Here you will find details of the user and all associated policies and settings. You can navigate using the links in the navigation bar.

Operational Instructions

  • Launch using Windows PowerShell
  • When prompted, enter the report scope of your choice (i.e. user@domain.com, domain.com or ALL) and Press Enter
  • Wait for reports to complete
  • Internet Explorer will automatically open the report homepage for you

Installation Instructions

  • Must be on a computer with the Skype for Business Management tools installed
  • User must have at least read-only access to Skype for Business
  • Execution PowerShell Policy must be set to Remote Signed
  • Reports will be written to the c:\ drive of the machine it is run from

Download

Download from TechNet Gallery: https://gallery.technet.microsoft.com/Skype-for-Business-User-672d3f6a

8 thoughts on “Skype for Business – Detailed User Configuration Report

  1. Hi, first Thanks the Script is very cool. I have a Little Problem i become for every Users some Errors.
    Get-CsVoicePolicy : Cannot bind parameter ‘Identity’. Cannot convert the
    “DE-Bochum-HQ-International” value of type
    “Microsoft.Rtc.Management.ADConnect.Collections.UserPolicy” to type
    “Microsoft.Rtc.Management.Xds.XdsIdentity”.
    At C:\Install\userreport_v1.0.ps1:89 char:52
    + $voicepolicy = Get-CsVoicePolicy -Identity $user.VoicePolicy |
    ConvertTo …
    + ~~~~~~~~~~~~~~~~~
    + CategoryInfo : InvalidArgument: (:) [Get-CsVoicePolicy], Parame
    terBindingException
    + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.Rtc.Man
    agement.Internal.GetVoicePolicyCmdlet

    Get-CsClientPolicy : Cannot bind parameter ‘Identity’. Cannot convert the
    “UCS” value of type
    “Microsoft.Rtc.Management.ADConnect.Collections.UserPolicy” to type
    “Microsoft.Rtc.Management.Xds.XdsIdentity”.
    At C:\Install\userreport_v1.0.ps1:143 char:54
    + $Clientpolicy = Get-CsClientPolicy -Identity $user.ClientPolicy |
    Conver …
    + ~~~~~~~~~~~~~~~~~~
    + CategoryInfo : InvalidArgument: (:) [Get-CsClientPolicy], Param
    eterBindingException
    + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.Rtc.Man
    agement.Internal.GetClientPolicyCmdlet

    Get-CsUserServicesPolicy : Cannot bind parameter ‘Identity’. Cannot convert
    the “AllowUnifiedContactStore” value of type
    “Microsoft.Rtc.Management.ADConnect.Collections.UserPolicy” to type
    “Microsoft.Rtc.Management.Xds.XdsIdentity”.
    At C:\Install\userreport_v1.0.ps1:215 char:66
    + $UserServicespolicy = Get-CsUserServicesPolicy -Identity
    $user.UserServi …
    +
    ~~~~~~~~~~~~~~~
    + CategoryInfo : InvalidArgument: (:) [Get-CsUserServicesPolicy],
    ParameterBindingException
    + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.Rtc.Man
    agement.Internal.GetUserServicesPolicyCmdlet

    When i use the Get-CS than it works, but not in your Script.

    Get-CsUserServicesPolicy -Identity AllowUnifiedContactStore

    Identity : Tag:AllowUnifiedContactStore
    UcsAllowed : True
    MigrationDelayInDays : 0
    EnableAwaySinceIndication : True

    Get-CsVoicePolicy -Identity DE-Bochum-HQ-International

    Identity : Tag:DE-Bochum-HQ-International
    PstnUsages : {DE-Bochum-HQ-Local,
    DE-Bochum-HQ-Mobile,
    DE-Bochum-HQ-National,
    DE-Bochum-HQ-Premium…}
    CustomCallForwardingSimulRingUsages : {}
    Description : Allows local/national/international
    calls from Bochum, Germany

    Generated by Lync Dialing Rule Optimizer
    v.12.5 on 5/23/2015
    Copyright © 2015 Ken Lasko
    (klasko@lyncoptimizer.com)
    http://lyncoptimizer.com
    http://ucken.blogspot.com
    You must read and abide by the terms of
    service at http://lyncoptimizer.com/terms
    ofservice.htm
    AllowSimulRing : True
    AllowCallForwarding : True
    AllowPSTNReRouting : True
    Name : DefaultPolicy
    EnableDelegation : True
    EnableTeamCall : True
    EnableCallTransfer : True
    EnableCallPark : True
    EnableMaliciousCallTracing : False
    EnableBWPolicyOverride : True
    PreventPSTNTollBypass : False
    CallForwardingSimulRingUsageType : VoicePolicyUsage
    EnableVoicemailEscapeTimer : False
    PSTNVoicemailEscapeTimer : 4000

    Get-CsClientPolicy -Identity UCS

    Identity : Tag:UCS
    PolicyEntry : {Name=EnablePresencePhotoOptions;
    Value=true}
    Description :
    AddressBookAvailability : WebSearchAndFileDownload
    AttendantSafeTransfer :
    AutoDiscoveryRetryInterval :
    BlockConversationFromFederatedContacts :
    CalendarStatePublicationInterval :
    ConferenceIMIdleTimeout :
    CustomizedHelpUrl :
    CustomLinkInErrorMessages :
    CustomStateUrl :
    DGRefreshInterval :
    DisableCalendarPresence :
    DisableContactCardOrganizationTab :
    DisableEmailComparisonCheck :
    DisableEmoticons :
    DisableFeedsTab :
    DisableFederatedPromptDisplayName :
    DisableFreeBusyInfo :
    DisableHandsetOnLockedMachine :
    DisableMeetingSubjectAndLocation :
    DisableHtmlIm :
    DisableInkIM :
    DisableOneNote12Integration :
    DisableOnlineContextualSearch :
    DisablePhonePresence :
    DisablePICPromptDisplayName :
    DisablePoorDeviceWarnings :
    DisablePoorNetworkWarnings :
    DisablePresenceNote :
    DisableRTFIM :
    DisableSavingIM :
    DisplayPhoto : AllPhotos
    EnableAppearOffline : True
    EnableCallLogAutoArchiving : True
    EnableClientMusicOnHold : True
    EnableConversationWindowTabs :
    EnableEnterpriseCustomizedHelp :
    EnableEventLogging :
    EnableExchangeContactSync : True
    EnableExchangeDelegateSync :
    EnableFullScreenVideo :
    EnableHighPerformanceConferencingAppSharing : False
    EnableHotdesking :
    EnableIMAutoArchiving :
    EnableMediaRedirection :
    EnableNotificationForNewSubscribers : True
    EnableServerConversationHistory : True
    EnableSkypeUI : True
    EnableSQMData :
    EnableTracing :
    EnableURL : True
    EnableUnencryptedFileTransfer :
    EnableVOIPCallDefault : False
    ExcludedContactFolders :
    HotdeskingTimeout : 00:05:00
    IMWarning :
    MAPIPollInterval :
    MaximumDGsAllowedInContactList : 10
    MaximumNumberOfContacts :
    MaxPhotoSizeKB : 30
    MusicOnHoldAudioFile :
    P2PAppSharingEncryption : Supported
    EnableHighPerformanceP2PAppSharing : False
    PlayAbbreviatedDialTone :
    SearchPrefixFlags :
    ShowRecentContacts : True
    ShowManagePrivacyRelationships : False
    ShowSharepointPhotoEditLink : False
    SPSearchInternalURL :
    SPSearchExternalURL :
    SPSearchCenterInternalURL :
    SPSearchCenterExternalURL :
    TabURL :
    TracingLevel : Light
    WebServicePollInterval :
    HelpEnvironment :
    RateMyCallDisplayPercentage : 10
    RateMyCallAllowCustomUserFeedback : True
    IMLatencySpinnerDelay : 1500
    IMLatencyErrorThreshold : 1500

    Like

    1. Hi. Thanks for alerting me to this issue. I will have a look at it when I get back home, on a deployment at the moment. Please allow a few days for me to get back to you properly
      thanks
      Mark

      Like

  2. Hi Mark, kam so sorry but with Version 1.1 i became this Errors for tue same 3 Policys:
    Enter user’s SIP address (e.g. user@domain.com), or SIP domain (e.g. domain.com), or type ALL for all users: ALL
    Get-CsVoicePolicy : Cannot bind parameter ‘Identity’. Cannot convert the “DE-Bochum-HQ-International” value of type
    “Microsoft.Rtc.Management.ADConnect.Collections.UserPolicy” to type “Microsoft.Rtc.Management.Xds.XdsIdentity”.
    At C:\Install\userreport_v1.1.ps1:89 char:52
    + $voicepolicy = Get-CsVoicePolicy -Identity $($user.VoicePolicy) | Conver …
    + ~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : InvalidArgument: (:) [Get-CsVoicePolicy], ParameterBindingException
    + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.Rtc.Management.Internal.GetVoicePolicyCmdlet

    Get-CsClientPolicy : Cannot bind parameter ‘Identity’. Cannot convert the “UCS” value of type
    “Microsoft.Rtc.Management.ADConnect.Collections.UserPolicy” to type “Microsoft.Rtc.Management.Xds.XdsIdentity”.
    At C:\Install\userreport_v1.1.ps1:143 char:54
    + $Clientpolicy = Get-CsClientPolicy -Identity $($user.ClientPolicy) | Con …
    + ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : InvalidArgument: (:) [Get-CsClientPolicy], ParameterBindingException
    + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.Rtc.Management.Internal.GetClientPolicyCmdlet

    Get-CsUserServicesPolicy : Cannot bind parameter ‘Identity’. Cannot convert the “AllowUnifiedContactStore” value of
    type “Microsoft.Rtc.Management.ADConnect.Collections.UserPolicy” to type “Microsoft.Rtc.Management.Xds.XdsIdentity”.
    At C:\Install\userreport_v1.1.ps1:215 char:66
    + $UserServicespolicy = Get-CsUserServicesPolicy -Identity $($user.UserSer …
    + ~~~~~~~~~~~~~~~
    + CategoryInfo : InvalidArgument: (:) [Get-CsUserServicesPolicy], ParameterBindingException
    + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.Rtc.Management.Internal.GetUserServicesPolicyCm
    dlet

    I Hope, you can find tue issue. Thanks a lot.

    René

    Like

    1. Hi René,

      Right I think I have nailed it this time. Just ran it against 2000 users on a prod environment and not seen any errors. I have added a log file to it now, so errors will be captured in there. searching the log I can not find any bind errors, so should be good to use now. Updated to version 1.2. Same download link. Apologies, and thank you for being patient.

      Mark

      Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s