Home » Archive » Skype for Business – Detailed User Configuration Report

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 from TechNet Gallery: https://gallery.technet.microsoft.com/Skype-for-Business-User-672d3f6a


  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
    At C:\Install\userreport_v1.0.ps1:89 char:52
    + $voicepolicy = Get-CsVoicePolicy -Identity $user.VoicePolicy |
    ConvertTo …
    + ~~~~~~~~~~~~~~~~~
    + CategoryInfo : InvalidArgument: (:) [Get-CsVoicePolicy], Parame
    + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.Rtc.Man

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

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

    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,
    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
    You must read and abide by the terms of
    service at http://lyncoptimizer.com/terms
    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;
    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

  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

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


    • 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.


  3. Hi Mark, thanks so much. This could be really useful. I am trying to modify it so that it can report info for our online-only users. Tried changing instances of Get-CsUser to Get-CsolUser. No errors, but no results, either. Web page has headers, but no users listed.

    • Hi

      The script only handles on prem users. For online, due to the way SfBO is built the trace backs are different commands. Simply changing the Get-CsUser will not be enough.


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: