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:
- User Mode – where administrators can enter the SIP address of the user they want to report on
- Domain Mode = where administrators can report on all users who are a member of a specific SIP domain
- 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
Mark is an Independent Microsoft Teams Consultant with over 15 years experience in Microsoft Technology. Mark is the founder of Commsverse, a dedicated Microsoft Teams conference and former MVP. You can follow him on twitter @UnifiedVale
Nice one! This is a really useful script!
[…] Skype for Business – Detailed User Configuration Report […]
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
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
Hi, Thanks, no Problem.
Hi René
I have identified the issue with the bindings and have updated the script on TechNet Gallery. Please download the new script https://gallery.technet.microsoft.com/lync/Skype-for-Business-User-672d3f6a and run. Please let me know if this has resolved your issue?
Thank you for bringing it to my attention
Mark
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é
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
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.
thanks